summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Glagolev2015-07-24 16:33:10 +0300
committerVlad Glagolev2015-07-24 16:33:10 +0300
commitab62e485fb58786bbff1a421346a86be1bbcedec (patch)
tree9584b78cf3f5a281282f8f11f165d9ece83c5e5a
parent45c689ea4f4d8edb821c1d8fe2c0f72123d15e9d (diff)
palemoon: new spell, Open Source, Firefox-based web browser focusing on efficiency
-rw-r--r--ChangeLog4
-rwxr-xr-xhttp/palemoon/BUILD53
-rwxr-xr-xhttp/palemoon/CONFIGURE76
-rwxr-xr-xhttp/palemoon/DEPENDS129
-rwxr-xr-xhttp/palemoon/DETAILS40
-rw-r--r--http/palemoon/HISTORY3
-rwxr-xr-xhttp/palemoon/INSTALL7
-rwxr-xr-xhttp/palemoon/PRE_BUILD15
-rwxr-xr-xhttp/palemoon/PROVIDES5
-rw-r--r--http/palemoon/cairo-system.patch13
-rw-r--r--http/palemoon/moonchild.gpgbin0 -> 2235 bytes
11 files changed, 345 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5104fb91da..c3809f35e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2015-07-24 Vlad Glagolev <stealth@sourcemage.org>
+ * http/palemoon: new spell, Open Source, Firefox-based web browser
+ focusing on efficiency
+
2015-07-22 Treeve Jelbert <treeve@sourcemage.org>
* qt5/qt3d: new spell, 3d drawing for qt5
* qt5/qtcanvas3d: new spell, 3d canvas for qml
diff --git a/http/palemoon/BUILD b/http/palemoon/BUILD
new file mode 100755
index 0000000000..c4b4659bbd
--- /dev/null
+++ b/http/palemoon/BUILD
@@ -0,0 +1,53 @@
+export MOZBUILD_STATE_PATH="${SOURCE_DIRECTORY}/mozbuild" &&
+export MOZCONFIG="${SOURCE_DIRECTORY}/mozconfig" &&
+
+#
+# No AVX optimization for Mozilla (GCC 4.6/4.7 or XUL bug on
+# SandyBridge/IvyBridge CPUs). See PR 52762 on GCC bug tracker.
+#
+CFLAGS="${CFLAGS//-mavx} -mno-avx" &&
+CXXFLAGS="${CXXFLAGS//-mavx} -mno-avx" &&
+
+if list_find "${LDFLAGS}" "-s"; then
+ OPTS="--enable-strip --enable-install-strip ${OPTS}"
+else
+ OPTS="--disable-strip --disable-install-strip ${OPTS}"
+fi &&
+
+PM_CONFIG="--prefix=${INSTALL_ROOT}/usr \
+ --with-default-mozilla-five-home=${INSTALL_ROOT}/usr/lib/palemoon \
+ --with-distribution-id=Palemoon \
+ --with-pthreads \
+ --enable-official-branding \
+ --enable-application=browser \
+ --disable-accessibility \
+ --disable-parental-controls \
+ --disable-jemalloc \
+ --disable-websms-backend \
+ --disable-crashreporter \
+ --disable-installer \
+ --disable-updater \
+ --disable-update-packaging \
+ --disable-tests \
+ --disable-debug \
+ --disable-debug-symbols \
+ ${PALEMOON_OPTS} \
+ ${OPTS}" &&
+
+# TODO: we don't have recent libpng yet
+PM_CONFIG="--without-system-png $PM_CONFIG" &&
+
+# multijob build
+echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$MAKE_NJOBS\"" >> ${MOZCONFIG} &&
+
+# required for non-duplicated data in the package
+echo "mk_add_options MOZ_OBJDIR=${SOURCE_DIRECTORY}/pmbuild" >> ${MOZCONFIG} &&
+
+echo "ac_add_options --enable-optimize=\"${CFLAGS}\"" >> ${MOZCONFIG} &&
+
+for o in $PM_CONFIG; do
+ echo "ac_add_options $o" >> ${MOZCONFIG}
+done &&
+
+python2 mach build || message "${MESSAGE_COLOR}Re-running mach...${DEFAULT_COLOR}" &&
+python2 mach build
diff --git a/http/palemoon/CONFIGURE b/http/palemoon/CONFIGURE
new file mode 100755
index 0000000000..765a237334
--- /dev/null
+++ b/http/palemoon/CONFIGURE
@@ -0,0 +1,76 @@
+config_query_option PALEMOON_OPTS "Enable Personal Security Manager?" y \
+ "--enable-crypto" \
+ "--disable-crypto" &&
+
+config_query_option PALEMOON_OPTS "Enable permissions (popup and cookie blocking)?" y \
+ "--enable-permissions" \
+ "--disable-permissions" &&
+
+config_query_option PALEMOON_OPTS "Enable safe browsing (anti-phishing) implementation?" n \
+ "--enable-safe-browsing" \
+ "--disable-safe-browsing" &&
+
+local PALEMOON_SB &&
+
+if list_find "${PALEMOON_OPTS}" "--enable-safe-browsing"; then
+ PALEMOON_SB=y
+else
+ PALEMOON_SB=n
+fi &&
+
+config_query_option PALEMOON_OPTS "Enable URL classifier module?" ${PALEMOON_SB} \
+ "--enable-url-classifier" \
+ "--disable-url-classifier" &&
+
+config_query_option PALEMOON_OPTS "Enable use of Skia Graphics Engine?" y \
+ "--enable-skia" \
+ "--disable-skia" &&
+
+config_query_option PALEMOON_OPTS "Enable support for WebRTC?" n \
+ "--enable-webrtc" \
+ "--disable-webrtc" &&
+
+config_query_option PALEMOON_OPTS "Enable support for WebM media (VP8 video and Vorbis audio)?" y \
+ "--enable-webm" \
+ "--disable-webm" &&
+
+config_query_option PALEMOON_OPTS "Enable support for OGG media (Theora video and Vorbis audio)?" y \
+ "--enable-ogg" \
+ "--disable-ogg" &&
+
+config_query_option PALEMOON_OPTS "Enable Wave decoder support?" y \
+ "--enable-wave" \
+ "--disable-wave" &&
+
+# required for ALSA
+if ! list_find "${PALEMOON_OPTS}" "--enable-webm" &&
+ ! list_find "${PALEMOON_OPTS}" "--enable-ogg" &&
+ ! list_find "${PALEMOON_OPTS}" "--enable-wave"; then
+ config_query_option PALEMOON_OPTS "Enable OSS support?" n \
+ "--enable-oss" \
+ "--disable-oss"
+fi &&
+
+config_query_option PALEMOON_OPTS "Enable support for HTML Speech API?" y \
+ "--enable-webspeech" \
+ "--disable-webspeech" &&
+
+config_query_option PALEMOON_OPTS "Enable support for RAW media?" y \
+ "--enable-raw" \
+ "--disable-raw" &&
+
+config_query_option PALEMOON_OPTS "Enable support for Opus audio?" y \
+ "--enable-opus" \
+ "--disable-opus" &&
+
+config_query_option PALEMOON_OPTS "Enable support for media plugins?" n \
+ "--enable-media-plugins" \
+ "--disable-media-plugins" &&
+
+config_query_option PALEMOON_OPTS "Enable support for getUserMedia?" n \
+ "--enable-media-navigator" \
+ "--disable-media-navigator" &&
+
+config_query_option PALEMOON_OPTS "Enable gamepad support?" y \
+ "--enable-gamepad" \
+ "--disable-gamepad"
diff --git a/http/palemoon/DEPENDS b/http/palemoon/DEPENDS
new file mode 100755
index 0000000000..caaa205b4a
--- /dev/null
+++ b/http/palemoon/DEPENDS
@@ -0,0 +1,129 @@
+# build environment
+depends p7zip &&
+depends zip &&
+depends unzip &&
+depends -sub CXX gcc &&
+depends autoconf-2.13 &&
+depends perl &&
+depends python &&
+depends pkgconfig &&
+
+# main libraries
+depends glib2 &&
+depends libjpeg-turbo '--with-system-jpeg' &&
+depends zlib '--with-system-zlib' &&
+depends bzip2 '--with-system-bz2' &&
+depends gtk+2 '--enable-default-toolkit=cairo-gtk2' &&
+depends -sub "TSAFE SECURE_DELETE ENABLE_UNLOCK_NOTIFY" sqlite '--enable-system-sqlite' &&
+depends nspr '--with-system-nspr' &&
+depends -sub 3.17.x nss '--with-system-nss' &&
+depends libffi '--enable-system-ffi' &&
+depends libevent '--with-system-libevent' &&
+depends fontconfig &&
+
+# X libraries
+depends libx11 &&
+depends libxt &&
+depends libxext &&
+depends libice &&
+depends libsm &&
+depends libxscrnsaver &&
+depends libxrender &&
+
+optional_depends freetype2 \
+ "--disable-tree-freetype" \
+ "--enable-tree-freetype" \
+ "to use system FreeType library" &&
+
+optional_depends -sub "X TEE" cairo \
+ "--enable-system-cairo" \
+ "--disable-system-cairo" \
+ "to use system version of cairo" &&
+
+if is_depends_enabled $SPELL cairo; then
+ message "${MESSAGE_COLOR}System cairo selected, forcing system version of ${SPELL_COLOR}pixman${MESSAGE_COLOR}...${DEFAULT_COLOR}" &&
+
+ depends pixman '--enable-system-pixman'
+else
+ list_add OPTS '--disable-system-pixman'
+fi &&
+
+optional_depends pango \
+ "--enable-pango" \
+ "--disable-pango" \
+ "to use Pango engine" &&
+
+optional_depends gstreamer \
+ "--enable-gstreamer" \
+ "--disable-gstreamer" \
+ "for GStreamer support" &&
+
+if is_depends_enabled $SPELL gstreamer; then
+ depends gst-plugins-base
+fi &&
+
+optional_depends dbus \
+ "--enable-dbus" \
+ "--disable-dbus" \
+ "for dbus support" &&
+
+if is_depends_enabled $SPELL dbus; then
+ depends dbus-glib
+fi &&
+
+if list_find "${PALEMOON_OPTS}" "--enable-webm"; then
+ depends yasm &&
+ depends alsa-lib '--enable-alsa' &&
+
+ optional_depends libvpx \
+ "--with-system-libvpx" \
+ "--without-system-libvpx" \
+ "to use system libvpx"
+elif list_find "${PALEMOON_OPTS}" "--enable-ogg" || list_find "${PALEMOON_OPTS}" "--enable-wave"; then
+ depends alsa-lib '--enable-alsa'
+else
+ optional_depends alsa-lib \
+ "--enable-alsa" \
+ "--disable-alsa" \
+ "for ALSA support"
+fi &&
+
+optional_depends OPENGL \
+ "--enable-webgl" \
+ "--disable-webgl" \
+ "for building of the WebGL implementation" &&
+
+optional_depends startup-notification \
+ "--enable-startup-notification" \
+ "--disable-startup-notification" \
+ "for startup-notification support" &&
+
+optional_depends hunspell \
+ "--enable-system-hunspell" \
+ "--disable-system-hunspell" \
+ "to use system hunspell library" &&
+
+optional_depends pulseaudio \
+ "--enable-pulseaudio" \
+ "--disable-pulseaudio" \
+ "for PulseAudio support (${PROBLEM_COLOR}experimental${DEFAULT_COLOR})" &&
+
+optional_depends wireless_tools \
+ "--enable-necko-wifi" \
+ "--disable-necko-wifi" \
+ "for necko wifi scanner" &&
+
+optional_depends gconf2 \
+ "--enable-gconf" \
+ "--disable-gconf" \
+ "for Gconf support" &&
+
+optional_depends libproxy \
+ "--enable-libproxy" \
+ "--disable-libproxy" \
+ "for libproxy support" &&
+
+optional_depends libgnomeui \
+ "--enable-gnomeui" \
+ "--disable-gnomeui" \
+ "to use libgnomeui instead of GIO & GTK for icon theme support"
diff --git a/http/palemoon/DETAILS b/http/palemoon/DETAILS
new file mode 100755
index 0000000000..bcefb1832f
--- /dev/null
+++ b/http/palemoon/DETAILS
@@ -0,0 +1,40 @@
+ SPELL=palemoon
+ VERSION=25.5.0
+ SOURCE=${SPELL}-${VERSION}-source.7z
+ SOURCE2=${SOURCE}.sig
+ SOURCE_URL[0]=ftp://source:current@ftp.palemoon.org/${SOURCE}
+ SOURCE2_URL[0]=${SOURCE_URL}.sig
+ SOURCE_GPG=moonchild.gpg:$SOURCE2:UPSTREAM_KEY
+ SOURCE2_IGNORE=signature
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ WEB_SITE=http://www.palemoon.org/
+ TMPFS=off
+ ENTERED=20150724
+ LICENSE[0]=MPL
+ DOCS="LICENSE README.txt"
+ DOC_DIRS=""
+ KEYWORDS="web http browser"
+ SHORT="Open Source, Firefox-based web browser focusing on efficiency"
+cat << EOF
+Pale Moon offers you a browsing experience in a browser completely built from
+its own, independently developed source with carefully selected features and
+optimizations to maximize the browser's speed*, stability and user experience,
+while offering a rich collection of extensions and themes (including
+compatibility with many Firefox extensions many users have come to love and
+rely on).
+
+Main features:
+* Optimized for modern processors
+* Safe: forked from Firefox and regularly updated.
+* Supported by a friendly, active community of users
+* Familiar, efficient, fully customizable interface (no Australis!)
+* Support for full themes: total freedom of any element's design
+* Support for easily-created lightweight themes (skins)
+* Smooth and speedy page drawing and script processing
+* Increased stability: experience fewer browser crashes
+* Support for many Firefox extensions (add-ons)
+* Support for a growing number of Pale Moon exclusive extensions
+* Extensive and growing support for HTML5 and CSS3
+* Many customization and configuration options
+* Able to import existing Firefox profiles with the migration tool
+EOF
diff --git a/http/palemoon/HISTORY b/http/palemoon/HISTORY
new file mode 100644
index 0000000000..8ed9268f49
--- /dev/null
+++ b/http/palemoon/HISTORY
@@ -0,0 +1,3 @@
+2015-07-23 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS, DEPENDS, {PRE_,}BUILD, INSTALL, CONFIGURE, PROVIDES,
+ moonchild.gpg, cairo-system.patch: created spell, version 25.5.0
diff --git a/http/palemoon/INSTALL b/http/palemoon/INSTALL
new file mode 100755
index 0000000000..b5d3fb3e50
--- /dev/null
+++ b/http/palemoon/INSTALL
@@ -0,0 +1,7 @@
+cd pmbuild &&
+make package &&
+
+cd dist &&
+cp -av palemoon "${INSTALL_ROOT}/usr/lib/" &&
+
+ln -vsf "${TRACK_ROOT}/usr/lib/palemoon/palemoon" "${INSTALL_ROOT}/usr/bin/palemoon"
diff --git a/http/palemoon/PRE_BUILD b/http/palemoon/PRE_BUILD
new file mode 100755
index 0000000000..282d79ce03
--- /dev/null
+++ b/http/palemoon/PRE_BUILD
@@ -0,0 +1,15 @@
+mk_source_dir "${SOURCE_DIRECTORY}" &&
+cd "${SOURCE_DIRECTORY}" &&
+verify_file &&
+
+7z x "${SOURCE_CACHE}/${SOURCE}" > /dev/null &&
+
+# resurrect permissions not stored by 7zip
+find . -type d -exec chmod 755 '{}' \; &&
+find . -type f -exec chmod 644 '{}' \; &&
+find . -name '*.sh' -exec chmod +x {} \; &&
+chmod -R +x build/autoconf/* python/* &&
+
+if is_depends_enabled $SPELL cairo; then
+ patch -p0 < "${SPELL_DIRECTORY}/cairo-system.patch"
+fi
diff --git a/http/palemoon/PROVIDES b/http/palemoon/PROVIDES
new file mode 100755
index 0000000000..03ca9a80a1
--- /dev/null
+++ b/http/palemoon/PROVIDES
@@ -0,0 +1,5 @@
+MOZILLA-BROWSER
+WEB-BROWSER
+GRAPHICAL-WEB-BROWSER
+GECKO
+NS-PLUGIN-COMPATIBLE
diff --git a/http/palemoon/cairo-system.patch b/http/palemoon/cairo-system.patch
new file mode 100644
index 0000000000..12ccd1e8f8
--- /dev/null
+++ b/http/palemoon/cairo-system.patch
@@ -0,0 +1,13 @@
+--- gfx/2d/DrawTargetCairo.cpp.orig 2015-06-06 15:30:46.000000000 +0300
++++ gfx/2d/DrawTargetCairo.cpp 2015-07-23 18:45:45.406135553 +0300
+@@ -638,8 +638,10 @@
+ DrawTargetCairo::SetPermitSubpixelAA(bool aPermitSubpixelAA)
+ {
+ DrawTarget::SetPermitSubpixelAA(aPermitSubpixelAA);
++#ifdef MOZ_TREE_CAIRO
+ cairo_surface_set_subpixel_antialiasing(mSurface,
+ aPermitSubpixelAA ? CAIRO_SUBPIXEL_ANTIALIASING_ENABLED : CAIRO_SUBPIXEL_ANTIALIASING_DISABLED);
++#endif
+ }
+
+ void
diff --git a/http/palemoon/moonchild.gpg b/http/palemoon/moonchild.gpg
new file mode 100644
index 0000000000..9c13155c5d
--- /dev/null
+++ b/http/palemoon/moonchild.gpg
Binary files differ