Compare commits
2 Commits
bc51f0c845
...
48bfeb44f0
Author | SHA1 | Date |
---|---|---|
Adrien Bourmault | 48bfeb44f0 | |
Adrien Bourmault | a9bcb6e8f4 |
1
.bashrc
1
.bashrc
|
@ -32,6 +32,7 @@ export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quo
|
||||||
export GITLAB_URL=https://git.a-lec.org
|
export GITLAB_URL=https://git.a-lec.org
|
||||||
export GIT_AUTHOR_NAME=Adrien\ Bourmault
|
export GIT_AUTHOR_NAME=Adrien\ Bourmault
|
||||||
export GIT_AUTHOR_EMAIL=neox@a-lec.org
|
export GIT_AUTHOR_EMAIL=neox@a-lec.org
|
||||||
|
export GUIX_PACKAGE_PATH=~/.config/guix/packages/defs
|
||||||
#export LIBRARY_PATH=~/.guix-profile/include:$LIBRARY_PATH
|
#export LIBRARY_PATH=~/.guix-profile/include:$LIBRARY_PATH
|
||||||
#export LD_LIBRARY_PATH=~/.guix-profile/lib:$LIBRARY_PATH:$LD_LIBRARY_PATH
|
#export LD_LIBRARY_PATH=~/.guix-profile/lib:$LIBRARY_PATH:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
(use-modules (guix ci))
|
||||||
|
|
||||||
|
(list (channel-with-substitutes-available
|
||||||
|
%default-guix-channel
|
||||||
|
"https://ci.guix.gnu.org"))
|
|
@ -0,0 +1,49 @@
|
||||||
|
Fixes needed when avoiding bundled libraries.
|
||||||
|
|
||||||
|
--- icecat-60.5.0/xpcom/build/moz.build.orig 2018-09-13 17:46:49.000000000 -0400
|
||||||
|
+++ icecat-60.5.0/xpcom/build/moz.build 2018-09-22 04:26:50.659564554 -0400
|
||||||
|
@@ -99,10 +99,5 @@
|
||||||
|
'/docshell/base',
|
||||||
|
]
|
||||||
|
|
||||||
|
-if CONFIG['MOZ_VPX']:
|
||||||
|
- LOCAL_INCLUDES += [
|
||||||
|
- '/media/libvpx',
|
||||||
|
- ]
|
||||||
|
-
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||||
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||||
|
--- icecat-60.5.0/storage/moz.build.orig 2018-09-13 17:51:11.000000000 -0400
|
||||||
|
+++ icecat-60.5.0/storage/moz.build 2018-09-22 04:26:50.659564554 -0400
|
||||||
|
@@ -117,7 +117,6 @@
|
||||||
|
DEFINES['MOZ_MEMORY_TEMP_STORE_PRAGMA'] = True
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
- '/db/sqlite3/src',
|
||||||
|
'/dom/base',
|
||||||
|
]
|
||||||
|
|
||||||
|
--- icecat-60.5.0/dom/indexedDB/moz.build.orig 2018-09-13 17:49:42.000000000 -0400
|
||||||
|
+++ icecat-60.5.0/dom/indexedDB/moz.build 2018-09-22 04:26:50.663564574 -0400
|
||||||
|
@@ -102,7 +102,6 @@
|
||||||
|
CXXFLAGS += ['-Wno-error=shadow']
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
- '/db/sqlite3/src',
|
||||||
|
'/dom/base',
|
||||||
|
'/dom/storage',
|
||||||
|
'/ipc/glue',
|
||||||
|
--- icecat-60.5.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build.orig 2018-09-13 17:40:54.000000000 -0400
|
||||||
|
+++ icecat-60.5.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build 2018-09-23 21:33:12.319975105 -0400
|
||||||
|
@@ -130,11 +130,6 @@
|
||||||
|
DEFINES["WEBRTC_POSIX"] = True
|
||||||
|
DEFINES["_FILE_OFFSET_BITS"] = "64"
|
||||||
|
|
||||||
|
- LOCAL_INCLUDES += [
|
||||||
|
- "/ipc/chromium/src/third_party/libevent/include/",
|
||||||
|
- "/ipc/chromium/src/third_party/libevent/linux/"
|
||||||
|
- ]
|
||||||
|
-
|
||||||
|
UNIFIED_SOURCES += [
|
||||||
|
"/media/webrtc/trunk/webrtc/base/task_queue_libevent.cc",
|
||||||
|
"/media/webrtc/trunk/webrtc/base/task_queue_posix.cc"
|
|
@ -0,0 +1,51 @@
|
||||||
|
Make some of the changes needed to the 'makeicecat' script, to allow it to run
|
||||||
|
in a snippet without network access. After this patch is applied, some
|
||||||
|
additional changes will be made using 'substitute*'.
|
||||||
|
|
||||||
|
diff --git a/makeicecat b/makeicecat
|
||||||
|
index bf2b7a6..bc3b19b 100755
|
||||||
|
--- a/makeicecat
|
||||||
|
+++ b/makeicecat
|
||||||
|
@@ -58,7 +58,7 @@ readonly SOURCEDIR=icecat-${FFVERSION}
|
||||||
|
# debug/shell options
|
||||||
|
readonly DEVEL=0
|
||||||
|
set -euo pipefail
|
||||||
|
-(( DEVEL )) && set -x
|
||||||
|
+set -x
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
@@ -459,7 +459,7 @@ configure_search()
|
||||||
|
sed 's|ddg@|ddg-html@|' -i browser/components/search/extensions/ddg-html/manifest.json
|
||||||
|
|
||||||
|
# Process various JSON pre-configuration dumps.
|
||||||
|
- python3 ../../tools/process-json-files.py . browser/components/extensions/schemas/
|
||||||
|
+ python3 "${DATADIR}"/../tools/process-json-files.py . browser/components/extensions/schemas/
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_mobile()
|
||||||
|
@@ -855,12 +855,12 @@ finalize_sourceball()
|
||||||
|
# entry point
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
-validate_env || exit 1
|
||||||
|
-prepare_env
|
||||||
|
-fetch_source
|
||||||
|
-verify_sources
|
||||||
|
-extract_sources
|
||||||
|
-fetch_l10n
|
||||||
|
+# validate_env || exit 1
|
||||||
|
+# prepare_env
|
||||||
|
+# fetch_source
|
||||||
|
+# verify_sources
|
||||||
|
+# extract_sources
|
||||||
|
+# fetch_l10n
|
||||||
|
apply_patches
|
||||||
|
configure
|
||||||
|
configure_search
|
||||||
|
@@ -872,4 +872,4 @@ prepare_macos_packaging
|
||||||
|
configure_extensions
|
||||||
|
configure_onboarding
|
||||||
|
apply_bugfixes
|
||||||
|
-finalize_sourceball
|
||||||
|
+# finalize_sourceball
|
|
@ -0,0 +1,226 @@
|
||||||
|
Allow building against system-wide graphite2/harfbuzz.
|
||||||
|
See <https://bugzilla.mozilla.org/show_bug.cgi?id=847568>
|
||||||
|
Based on:
|
||||||
|
https://svnweb.freebsd.org/ports/head/www/firefox-esr/files/patch-bug847568?revision=472833&view=co
|
||||||
|
Modified for use with patch -p1, and to apply cleanly to GNU IceCat.
|
||||||
|
|
||||||
|
--- icecat-60.5.0/config/system-headers.mozbuild
|
||||||
|
+++ icecat-60.5.0/config/system-headers.mozbuild
|
||||||
|
@@ -1311,6 +1311,19 @@
|
||||||
|
'pixman.h',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'graphite2/Font.h',
|
||||||
|
+ 'graphite2/Segment.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'harfbuzz/hb-glib.h',
|
||||||
|
+ 'harfbuzz/hb-ot.h',
|
||||||
|
+ 'harfbuzz/hb.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||||
|
system_headers += [
|
||||||
|
'vpx_mem/vpx_mem.h',
|
||||||
|
--- icecat-60.5.0/dom/base/moz.build
|
||||||
|
+++ icecat-60.5.0/dom/base/moz.build
|
||||||
|
@@ -474,6 +474,9 @@
|
||||||
|
if CONFIG['MOZ_X11']:
|
||||||
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
GENERATED_FILES += [
|
||||||
|
'PropertyUseCounterMap.inc',
|
||||||
|
'UseCounterList.h',
|
||||||
|
--- icecat-60.5.0/gfx/graphite2/moz-gr-update.sh
|
||||||
|
+++ icecat-60.5.0/gfx/graphite2/moz-gr-update.sh
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script used to update the Graphite2 library in the mozilla source tree
|
||||||
|
+# and bump version for --with-system-graphite2
|
||||||
|
|
||||||
|
# This script lives in gfx/graphite2, along with the library source,
|
||||||
|
# but must be run from the top level of the mozilla-central tree.
|
||||||
|
@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla
|
||||||
|
#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
|
||||||
|
#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
|
||||||
|
|
||||||
|
+# chase version for --with-system-graphite2
|
||||||
|
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
|
||||||
|
+ if /GR2_VERSION_REQUIRE/" old-configure.in
|
||||||
|
+
|
||||||
|
# summarize what's been touched
|
||||||
|
echo Updated to $RELEASE.
|
||||||
|
echo Here is what changed in the gfx/graphite2 directory:
|
||||||
|
echo
|
||||||
|
|
||||||
|
-hg stat gfx/graphite2
|
||||||
|
+hg stat old-configure.in gfx/graphite2
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo If gfx/graphite2/src/files.mk has changed, please make corresponding
|
||||||
|
--- icecat-60.5.0/gfx/moz.build
|
||||||
|
+++ icecat-60.5.0/gfx/moz.build
|
||||||
|
@@ -10,6 +10,12 @@ with Files('**'):
|
||||||
|
if CONFIG['MOZ_TREE_CAIRO']:
|
||||||
|
DIRS += ['cairo']
|
||||||
|
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ DIRS += ['graphite2/src' ]
|
||||||
|
+
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ DIRS += ['harfbuzz/src']
|
||||||
|
+
|
||||||
|
DIRS += [
|
||||||
|
'2d',
|
||||||
|
'ycbcr',
|
||||||
|
@@ -18,8 +24,6 @@ DIRS += [
|
||||||
|
'qcms',
|
||||||
|
'gl',
|
||||||
|
'layers',
|
||||||
|
- 'graphite2/src',
|
||||||
|
- 'harfbuzz/src',
|
||||||
|
'ots/src',
|
||||||
|
'thebes',
|
||||||
|
'ipc',
|
||||||
|
--- icecat-60.5.0/gfx/skia/generate_mozbuild.py
|
||||||
|
+++ icecat-60.5.0/gfx/skia/generate_mozbuild.py
|
||||||
|
@@ -148,6 +148,9 @@
|
||||||
|
'-Wno-unused-private-field',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
|
||||||
|
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||||
|
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||||
|
--- icecat-60.5.0/gfx/skia/moz.build
|
||||||
|
+++ icecat-60.5.0/gfx/skia/moz.build
|
||||||
|
@@ -822,6 +822,9 @@
|
||||||
|
'-Wno-unused-private-field',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
|
||||||
|
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||||
|
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||||
|
--- icecat-60.5.0/gfx/thebes/moz.build
|
||||||
|
+++ icecat-60.5.0/gfx/thebes/moz.build
|
||||||
|
@@ -272,7 +272,13 @@
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
|
||||||
|
|
||||||
|
-DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
|
||||||
|
+else:
|
||||||
|
+ DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
|
||||||
|
if CONFIG['CC_TYPE'] == 'clang':
|
||||||
|
# Suppress warnings from Skia header files.
|
||||||
|
--- icecat-60.5.0/intl/unicharutil/util/moz.build
|
||||||
|
+++ icecat-60.5.0/intl/unicharutil/util/moz.build
|
||||||
|
@@ -25,4 +25,7 @@ UNIFIED_SOURCES += [
|
||||||
|
'nsUnicodeProperties.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
FINAL_LIBRARY = 'xul'
|
||||||
|
--- icecat-60.5.0/netwerk/dns/moz.build
|
||||||
|
+++ icecat-60.5.0/netwerk/dns/moz.build
|
||||||
|
@@ -76,3 +76,6 @@
|
||||||
|
|
||||||
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||||||
|
CXXFLAGS += ['-Wno-error=shadow']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
--- icecat-60.5.0/old-configure.in
|
||||||
|
+++ icecat-60.5.0/old-configure.in
|
||||||
|
@@ -3971,6 +3971,27 @@
|
||||||
|
AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
|
||||||
|
|
||||||
|
dnl ========================================================
|
||||||
|
+dnl Check for graphite2
|
||||||
|
+dnl ========================================================
|
||||||
|
+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
|
||||||
|
+ dnl graphite2.pc has bogus version, check manually
|
||||||
|
+ _SAVE_CFLAGS=$CFLAGS
|
||||||
|
+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
|
||||||
|
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
|
||||||
|
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
|
||||||
|
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
|
||||||
|
+ * 100 + GR2_VERSION_BUGFIX >= \
|
||||||
|
+ (major) * 10000 + (minor) * 100 + (bugfix) )
|
||||||
|
+ ], [
|
||||||
|
+ #if !GR2_VERSION_REQUIRE(1,3,10)
|
||||||
|
+ #error "Insufficient graphite2 version."
|
||||||
|
+ #endif
|
||||||
|
+ ], [],
|
||||||
|
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
|
||||||
|
+ CFLAGS=$_SAVE_CFLAGS
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
dnl Check for pixman and cairo
|
||||||
|
dnl ========================================================
|
||||||
|
|
||||||
|
--- icecat-60.5.0/toolkit/library/moz.build
|
||||||
|
+++ icecat-60.5.0/toolkit/library/moz.build
|
||||||
|
@@ -235,6 +235,12 @@
|
||||||
|
if CONFIG['MOZ_SYSTEM_PNG']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_HUNSPELL']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
|
||||||
|
|
||||||
|
--- icecat-60.5.0/toolkit/moz.configure
|
||||||
|
+++ icecat-60.5.0/toolkit/moz.configure
|
||||||
|
@@ -1051,6 +1051,26 @@
|
||||||
|
add_old_configure_assignment('FT2_CFLAGS',
|
||||||
|
ft2_info.cflags)
|
||||||
|
|
||||||
|
+# Graphite2
|
||||||
|
+# ==============================================================
|
||||||
|
+option('--with-system-graphite2',
|
||||||
|
+ help="Use system graphite2 (located with pkgconfig)")
|
||||||
|
+
|
||||||
|
+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2',
|
||||||
|
+ when='--with-system-graphite2')
|
||||||
|
+
|
||||||
|
+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True))
|
||||||
|
+
|
||||||
|
+# HarfBuzz
|
||||||
|
+# ==============================================================
|
||||||
|
+option('--with-system-harfbuzz',
|
||||||
|
+ help="Use system harfbuzz (located with pkgconfig)")
|
||||||
|
+
|
||||||
|
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.7.4',
|
||||||
|
+ when='--with-system-harfbuzz')
|
||||||
|
+
|
||||||
|
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
|
||||||
|
+
|
||||||
|
# Mortar
|
||||||
|
# ==============================================================
|
||||||
|
option('--enable-mortar', help='Enable mortar extension')
|
|
@ -0,0 +1,380 @@
|
||||||
|
Support building with system media libraries.
|
||||||
|
See <https://bugzilla.mozilla.org/show_bug.cgi?id=517422>
|
||||||
|
|
||||||
|
Based on:
|
||||||
|
https://svnweb.freebsd.org/ports/head/www/firefox-esr/files/patch-z-bug517422?revision=472833&view=markup
|
||||||
|
|
||||||
|
Changes to files within the bundled libraries are omitted, since those files
|
||||||
|
are removed from Guix sources. Modified for use with patch -p1, and to apply
|
||||||
|
cleanly to GNU IceCat.
|
||||||
|
|
||||||
|
--- icecat-60.5.0/build/moz.configure/old.configure
|
||||||
|
+++ icecat-60.5.0/build/moz.configure/old.configure
|
||||||
|
@@ -273,7 +273,12 @@
|
||||||
|
'--with-system-libvpx',
|
||||||
|
'--with-system-nspr',
|
||||||
|
'--with-system-nss',
|
||||||
|
+ '--with-system-ogg',
|
||||||
|
'--with-system-png',
|
||||||
|
+ '--with-system-soundtouch',
|
||||||
|
+ '--with-system-theora',
|
||||||
|
+ '--with-system-tremor',
|
||||||
|
+ '--with-system-vorbis',
|
||||||
|
'--with-system-zlib',
|
||||||
|
'--with-thumb',
|
||||||
|
'--with-thumb-interwork',
|
||||||
|
--- icecat-60.5.0/config/external/moz.build
|
||||||
|
+++ icecat-60.5.0/config/external/moz.build
|
||||||
|
@@ -23,12 +23,21 @@
|
||||||
|
|
||||||
|
external_dirs += ['modules/xz-embedded']
|
||||||
|
|
||||||
|
-if CONFIG['MOZ_VORBIS']:
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_OGG']:
|
||||||
|
+ external_dirs += ['media/libogg']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_SYSTEM_VORBIS']:
|
||||||
|
external_dirs += ['media/libvorbis']
|
||||||
|
|
||||||
|
-if CONFIG['MOZ_TREMOR']:
|
||||||
|
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_SYSTEM_TREMOR']:
|
||||||
|
external_dirs += ['media/libtremor']
|
||||||
|
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_THEORA']:
|
||||||
|
+ external_dirs += ['media/libtheora']
|
||||||
|
+
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
|
||||||
|
+ external_dirs += ['media/libsoundtouch']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_WEBM_ENCODER']:
|
||||||
|
external_dirs += ['media/libmkv']
|
||||||
|
|
||||||
|
@@ -51,11 +60,8 @@
|
||||||
|
'media/kiss_fft',
|
||||||
|
'media/libcubeb',
|
||||||
|
'media/libnestegg',
|
||||||
|
- 'media/libogg',
|
||||||
|
'media/libopus',
|
||||||
|
- 'media/libtheora',
|
||||||
|
'media/libspeex_resampler',
|
||||||
|
- 'media/libsoundtouch',
|
||||||
|
'media/mp4parse-rust',
|
||||||
|
'media/psshparser'
|
||||||
|
]
|
||||||
|
--- icecat-60.5.0/config/system-headers.mozbuild
|
||||||
|
+++ icecat-60.5.0/config/system-headers.mozbuild
|
||||||
|
@@ -1324,6 +1324,28 @@
|
||||||
|
'harfbuzz/hb.h',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_OGG']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'ogg/ogg.h',
|
||||||
|
+ 'ogg/os_types.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_THEORA']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'theora/theoradec.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_VORBIS']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'vorbis/codec.h',
|
||||||
|
+ 'vorbis/vorbisenc.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_TREMOR']:
|
||||||
|
+ system_headers += [
|
||||||
|
+ 'tremor/ivorbiscodec.h',
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||||
|
system_headers += [
|
||||||
|
'vpx_mem/vpx_mem.h',
|
||||||
|
--- icecat-60.5.0/dom/media/AudioStream.cpp
|
||||||
|
+++ icecat-60.5.0/dom/media/AudioStream.cpp
|
||||||
|
@@ -128,7 +128,9 @@
|
||||||
|
: mMonitor("AudioStream"),
|
||||||
|
mChannels(0),
|
||||||
|
mOutChannels(0),
|
||||||
|
+#ifndef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
mTimeStretcher(nullptr),
|
||||||
|
+#endif
|
||||||
|
mDumpFile(nullptr),
|
||||||
|
mState(INITIALIZED),
|
||||||
|
mDataSource(aSource),
|
||||||
|
@@ -147,9 +149,11 @@
|
||||||
|
if (mDumpFile) {
|
||||||
|
fclose(mDumpFile);
|
||||||
|
}
|
||||||
|
+#ifndef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
if (mTimeStretcher) {
|
||||||
|
soundtouch::destroySoundTouchObj(mTimeStretcher);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
#if defined(XP_WIN)
|
||||||
|
if (XRE_IsContentProcess()) {
|
||||||
|
audio::AudioNotificationReceiver::Unregister(this);
|
||||||
|
@@ -170,7 +174,11 @@
|
||||||
|
nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() {
|
||||||
|
mMonitor.AssertCurrentThreadOwns();
|
||||||
|
if (!mTimeStretcher) {
|
||||||
|
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
+ mTimeStretcher = new soundtouch::SoundTouch();
|
||||||
|
+#else
|
||||||
|
mTimeStretcher = soundtouch::createSoundTouchObj();
|
||||||
|
+#endif
|
||||||
|
mTimeStretcher->setSampleRate(mAudioClock.GetInputRate());
|
||||||
|
mTimeStretcher->setChannels(mOutChannels);
|
||||||
|
mTimeStretcher->setPitch(1.0);
|
||||||
|
--- icecat-60.5.0/dom/media/AudioStream.h
|
||||||
|
+++ icecat-60.5.0/dom/media/AudioStream.h
|
||||||
|
@@ -15,7 +15,11 @@
|
||||||
|
#include "mozilla/TimeStamp.h"
|
||||||
|
#include "mozilla/UniquePtr.h"
|
||||||
|
#include "CubebUtils.h"
|
||||||
|
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
+#include "soundtouch/SoundTouch.h"
|
||||||
|
+#else
|
||||||
|
#include "soundtouch/SoundTouchFactory.h"
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if defined(XP_WIN)
|
||||||
|
#include "mozilla/audio/AudioNotificationReceiver.h"
|
||||||
|
@@ -293,7 +297,11 @@
|
||||||
|
uint32_t mChannels;
|
||||||
|
uint32_t mOutChannels;
|
||||||
|
AudioClock mAudioClock;
|
||||||
|
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
+ nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher;
|
||||||
|
+#else
|
||||||
|
soundtouch::SoundTouch* mTimeStretcher;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Output file for dumping audio
|
||||||
|
FILE* mDumpFile;
|
||||||
|
--- icecat-60.5.0/dom/media/moz.build
|
||||||
|
+++ icecat-60.5.0/dom/media/moz.build
|
||||||
|
@@ -327,6 +327,21 @@
|
||||||
|
|
||||||
|
DEFINES['MOZILLA_INTERNAL_API'] = True
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_OGG']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_THEORA']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_VORBIS']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_TREMOR']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_ANDROID_HLS_SUPPORT']:
|
||||||
|
DEFINES['MOZ_ANDROID_HLS_SUPPORT'] = True
|
||||||
|
|
||||||
|
--- icecat-60.5.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
|
||||||
|
+++ icecat-60.5.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
|
||||||
|
@@ -15,9 +15,13 @@
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
+#include "nsXPCOMPrivate.h" // for XUL_DLL
|
||||||
|
+#else
|
||||||
|
// We use a known symbol located in lgpllibs to determine its location.
|
||||||
|
// soundtouch happens to be always included in lgpllibs
|
||||||
|
#include "soundtouch/SoundTouch.h"
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
|
||||||
|
@@ -60,6 +64,12 @@
|
||||||
|
|
||||||
|
sLinkStatus = LinkStatus_FAILED;
|
||||||
|
|
||||||
|
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||||
|
+ // We retrieve the path of the XUL library as this is where mozavcodec and
|
||||||
|
+ // mozavutil libs are located.
|
||||||
|
+ char* path =
|
||||||
|
+ PR_GetLibraryFilePathname(XUL_DLL, (PRFuncPtr)&FFVPXRuntimeLinker::Init);
|
||||||
|
+#else
|
||||||
|
// We retrieve the path of the lgpllibs library as this is where mozavcodec
|
||||||
|
// and mozavutil libs are located.
|
||||||
|
PathString lgpllibsname = GetLibraryName(nullptr, "lgpllibs");
|
||||||
|
@@ -68,6 +78,7 @@
|
||||||
|
}
|
||||||
|
PathString path = GetLibraryFilePathname(
|
||||||
|
lgpllibsname.get(), (PRFuncPtr)&soundtouch::SoundTouch::getVersionId);
|
||||||
|
+#endif
|
||||||
|
if (path.IsEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
--- icecat-60.5.0/old-configure.in
|
||||||
|
+++ icecat-60.5.0/old-configure.in
|
||||||
|
@@ -2417,6 +2417,111 @@
|
||||||
|
fi
|
||||||
|
fi # COMPILE_ENVIRONMENT
|
||||||
|
|
||||||
|
+dnl ========================================================
|
||||||
|
+dnl Check for libogg
|
||||||
|
+dnl ========================================================
|
||||||
|
+
|
||||||
|
+MOZ_ARG_WITH_BOOL(system-ogg,
|
||||||
|
+[ --with-system-ogg Use system libogg (located with pkgconfig)],
|
||||||
|
+MOZ_SYSTEM_OGG=1,
|
||||||
|
+MOZ_SYSTEM_OGG=)
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_OGG"; then
|
||||||
|
+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.3.3)
|
||||||
|
+
|
||||||
|
+ _SAVE_LIBS=$LIBS
|
||||||
|
+ LIBS="$LIBS $MOZ_OGG_LIBS"
|
||||||
|
+ AC_CHECK_FUNC(ogg_set_mem_functions, [],
|
||||||
|
+ [AC_DEFINE(MOZ_OGG_NO_MEM_REPORTING)])
|
||||||
|
+ LIBS=$_SAVE_LIBS
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AC_SUBST(MOZ_SYSTEM_OGG)
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
+dnl Check for libvorbis
|
||||||
|
+dnl ========================================================
|
||||||
|
+
|
||||||
|
+MOZ_ARG_WITH_BOOL(system-vorbis,
|
||||||
|
+[ --with-system-vorbis Use system libvorbis (located with pkgconfig)],
|
||||||
|
+MOZ_SYSTEM_VORBIS=1,
|
||||||
|
+MOZ_SYSTEM_VORBIS=)
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_VORBIS"; then
|
||||||
|
+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.6)
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AC_SUBST(MOZ_SYSTEM_VORBIS)
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
+dnl Check for integer-only libvorbis aka tremor
|
||||||
|
+dnl ========================================================
|
||||||
|
+
|
||||||
|
+MOZ_ARG_WITH_BOOL(system-tremor,
|
||||||
|
+[ --with-system-tremor Use system libtremor (located with pkgconfig)],
|
||||||
|
+MOZ_SYSTEM_TREMOR=1,
|
||||||
|
+MOZ_SYSTEM_TREMOR=)
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_TREMOR"; then
|
||||||
|
+ PKG_CHECK_MODULES(MOZ_TREMOR, vorbisidec >= 1.2.1)
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AC_SUBST(MOZ_SYSTEM_TREMOR)
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
+dnl Check for libtheora
|
||||||
|
+dnl ========================================================
|
||||||
|
+
|
||||||
|
+MOZ_ARG_WITH_BOOL(system-theora,
|
||||||
|
+[ --with-system-theora Use system libtheora (located with pkgconfig)],
|
||||||
|
+MOZ_SYSTEM_THEORA=1,
|
||||||
|
+MOZ_SYSTEM_THEORA=)
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_THEORA"; then
|
||||||
|
+ PKG_CHECK_MODULES(MOZ_THEORA, theora >= 1.2)
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AC_SUBST(MOZ_SYSTEM_THEORA)
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
+dnl Check for libSoundTouch
|
||||||
|
+dnl ========================================================
|
||||||
|
+
|
||||||
|
+MOZ_ARG_WITH_BOOL(system-soundtouch,
|
||||||
|
+[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)],
|
||||||
|
+MOZ_SYSTEM_SOUNDTOUCH=1,
|
||||||
|
+MOZ_SYSTEM_SOUNDTOUCH=)
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then
|
||||||
|
+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0)
|
||||||
|
+
|
||||||
|
+ AC_LANG_SAVE
|
||||||
|
+ AC_LANG_CPLUSPLUS
|
||||||
|
+ _SAVE_CXXFLAGS=$CXXFLAGS
|
||||||
|
+ CXXFLAGS="$CXXFLAGS $MOZ_SOUNDTOUCH_CFLAGS"
|
||||||
|
+ AC_CACHE_CHECK(for soundtouch sample type,
|
||||||
|
+ ac_cv_soundtouch_sample_type,
|
||||||
|
+ [AC_TRY_COMPILE([#include <SoundTouch.h>
|
||||||
|
+ #ifndef SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
|
+ #error soundtouch expects float samples
|
||||||
|
+ #endif],
|
||||||
|
+ [],
|
||||||
|
+ [ac_cv_soundtouch_sample_type=short],
|
||||||
|
+ [ac_cv_soundtouch_sample_type=float])])
|
||||||
|
+ CXXFLAGS=$_SAVE_CXXFLAGS
|
||||||
|
+ AC_LANG_RESTORE
|
||||||
|
+
|
||||||
|
+ if test \( -n "$MOZ_SAMPLE_TYPE_S16" -a "$ac_cv_soundtouch_sample_type" != short \) \
|
||||||
|
+ -o \( -n "$MOZ_SAMPLE_TYPE_FLOAT32" -a "$ac_cv_soundtouch_sample_type" != float \) ; then
|
||||||
|
+ AC_MSG_ERROR([SoundTouch library is built with incompatible sample type. Either rebuild the library with/without --enable-integer-samples, chase default Mozilla sample type or remove --with-system-soundtouch.])
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if test -n "$MOZ_SYSTEM_SOUNDTOUCH"; then
|
||||||
|
+ AC_DEFINE(MOZ_SYSTEM_SOUNDTOUCH)
|
||||||
|
+fi
|
||||||
|
+AC_SUBST(MOZ_SYSTEM_SOUNDTOUCH)
|
||||||
|
+
|
||||||
|
dnl system libvpx Support
|
||||||
|
dnl ========================================================
|
||||||
|
MOZ_ARG_WITH_BOOL(system-libvpx,
|
||||||
|
--- icecat-60.5.0/toolkit/library/moz.build
|
||||||
|
+++ icecat-60.5.0/toolkit/library/moz.build
|
||||||
|
@@ -244,6 +244,21 @@
|
||||||
|
if CONFIG['MOZ_SYSTEM_HUNSPELL']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_OGG']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_THEORA']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_VORBIS']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_TREMOR']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
|
||||||
|
+
|
||||||
|
+if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_LIBEVENT']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
|
||||||
|
|
||||||
|
--- icecat-60.5.0/xpcom/build/XPCOMInit.cpp
|
||||||
|
+++ icecat-60.5.0/xpcom/build/XPCOMInit.cpp
|
||||||
|
@@ -139,7 +139,9 @@
|
||||||
|
|
||||||
|
#include "mozilla/ipc/GeckoChildProcessHost.h"
|
||||||
|
|
||||||
|
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
||||||
|
#include "ogg/ogg.h"
|
||||||
|
+#endif
|
||||||
|
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||||
|
#if defined(HAVE_STDINT_H)
|
||||||
|
// mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in
|
||||||
|
@@ -635,10 +637,12 @@
|
||||||
|
// this oddness.
|
||||||
|
mozilla::SetICUMemoryFunctions();
|
||||||
|
|
||||||
|
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
||||||
|
// Do the same for libogg.
|
||||||
|
ogg_set_mem_functions(
|
||||||
|
OggReporter::CountingMalloc, OggReporter::CountingCalloc,
|
||||||
|
OggReporter::CountingRealloc, OggReporter::CountingFree);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||||
|
// And for VPX.
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue