Compare commits

..

No commits in common. "a5942cf3817d33f3728b005d395bc13c2d0a446c" and "d92d40eb2395cab87b613874f743e935da1f1363" have entirely different histories.

12 changed files with 2321 additions and 0 deletions

22
.bash_profile Executable file
View File

@ -0,0 +1,22 @@
# Set up the system, user profile, and related variables.
# /etc/profile will be sourced by bash automatically
# Set up the home environment profile.
if [ -f ~/.profile ]; then source ~/.profile; fi
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
PS1='\u@\h \w${GUIX_ENVIRONMENT:+ [env]}\$ '
# Set up the system, user profile, and related variables.
# /etc/profile will be sourced by bash automatically
# Set up the home environment profile.
if [ -f ~/.profile ]; then source ~/.profile; fi
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
PS1='\u@\h \w${GUIX_ENVIRONMENT:+ [env]}\$ '
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
export XDG_DATA_DIRS="$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share"
export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/flatpak/exports/share"
export LV2_PATH="~/.guix-profile/lib/lv2"

42
.bashrc Executable file
View File

@ -0,0 +1,42 @@
# Bash initialization for interactive non-login shells and
# for remote shells (info "(bash) Bash Startup Files").
# Export 'SHELL' to child processes. Programs such as 'screen'
# honor it and otherwise use /bin/sh.
export SHELL
if [[ $- != *i* ]]
then
# We are being invoked from a non-interactive shell. If this
# is an SSH session (as in "ssh host command"), source
# /etc/profile so we get PATH and other essential variables.
[[ -n "$SSH_CLIENT" ]] && source /etc/profile
# Don't do anything else.
return
fi
# Source the system-wide file.
source /etc/bashrc
# Adjust the prompt depending on whether we're in 'guix environment'.
if [ -n "$GUIX_ENVIRONMENT" ]
then
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] [env] \$ '
else
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
fi
export BSD_GAMES_DIR=~/.local/share/bsd-games
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
export GITLAB_URL=https://git.a-lec.org
export GUIX_PACKAGE_PATH=~/.config/guix/packages/defs
#export LIBRARY_PATH=~/.guix-profile/include:$LIBRARY_PATH
#export LD_LIBRARY_PATH=~/.guix-profile/lib:$LIBRARY_PATH:$LD_LIBRARY_PATH
source ~/.bash_secrets
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi

38
home-configuration.scm Normal file
View File

@ -0,0 +1,38 @@
;; Ce fichier « home-environment » peut être passé à « guix home reconfigure » pour reproduire
;; le contenu de votre profil. Son contenu est « symbolique » : il ne spécifie que les
;; noms des paquets. Pour reproduire exactement le même profil, vous devez aussi
;; retenir les canaux utilisés, ceux renvoyés par « guix describe ».
;; Voir la section « Répliquer Guix » dans le manuel.
(use-modules (gnu home)
(gnu services)
(gnu packages)
(gnu packages gnupg)
(guix gexp)
(gnu home services shells)
(gnu home services gnupg))
(home-environment
(services
(list (service home-bash-service-type
(home-bash-configuration
(aliases '(
("clear" . "printf '\\033c'")
("dir" . "dir --color=auto")
("egrep" . "egrep --color=auto")
("fgrep" . "fgrep --color=auto")
("grep" . "grep --color=auto")
("la" . "ls -A")
("ll" . "ls -l")
("l" . "ls -CF")
("ls" . "ls -p --color=auto")
("vdir" . "vdir --color=auto")))
(bashrc (list (local-file "/home/neox/.config/guix//.bashrc" "bashrc")))
(bash-profile (list (local-file
"/home/neox/.config/guix//.bash_profile"
"bash_profile")))))
(service home-gpg-agent-service-type
(home-gpg-agent-configuration
(pinentry-program
(file-append pinentry-gnome3 "/bin/pinentry-gnome3"))
(ssh-support? #t))))))

BIN
packages/defs/icecat-.zip Normal file

Binary file not shown.

View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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')

View File

@ -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.

213
packages/manifest_lourd.scm Normal file
View File

@ -0,0 +1,213 @@
;; Ce fichier « manifeste » peut être passé à « guix package -m » pour reproduire
;; le contenu de votre profil. Son contenu est « symbolique » : il ne spécifie que les
;; noms des paquets. Pour reproduire exactement le même profil, vous devez aussi
;; retenir les canaux utilisés, ceux renvoyés par « guix describe ».
;; Voir la section « Répliquer Guix » dans le manuel.
(specifications->manifest
(list "0ad"
"adb"
"alsa-plugins"
"alsa-utils"
"ardour"
"atop"
"audacity"
"avldrums-lv2"
"bash-completion"
"bind:utils"
"bluefish"
"bsd-games"
"calf"
"cambalache"
"caps-plugins-lv2"
"chess"
"cmake"
"cmatrix"
"cpupower"
"cryptsetup"
"curl"
"cvs"
"dconf-editor"
"dino"
"dmidecode"
"dosage"
"eboard"
"endeavour"
"evolution"
"exfatprogs"
"fastboot"
"ffmpeg"
"flashrom"
"flatpak"
"fluida-lv2"
"font-awesome"
"font-liberation"
"font-openmoji"
"gdb"
"ghostwriter"
"gimp"
"git"
"git-lfs"
"git:send-email"
"gnome-builder"
"gnome-chess"
"gnome-font-viewer"
"gnome-power-manager"
"gnome-shell-extension-blur-my-shell"
"gnome-shell-extension-burn-my-windows"
"gnome-shell-extension-dash-to-dock"
"gnome-shell-extension-topicons-redux"
"gnome-shell-extension-transparent-window"
"gnome-tweaks"
"gnupg"
"gnuplot"
"gparted"
"graphviz"
"grub"
"gx-overdriver-lv2"
"gx-vintage-fuzz-master-lv2"
"gx-voodoo-fuzz-lv2"
"gzip"
"hexchat"
"hplip"
"htop"
"icecat-custom"
"inetutils"
"infamous-plugins"
"inkscape"
"jack"
"kapman"
"kbreakout"
"kdenlive"
"keysmith"
"ksirk"
"libnitrokey"
"libreoffice"
"libtree"
"licensecheck"
"linux-libre-documentation"
"lm-sensors"
"lollypop"
"lv2-speech-denoiser"
"lz4"
"make"
"man-pages"
"mediainfo"
"mda-lv2"
"meld"
"memtester"
"microcom"
"minetest"
"minicom"
"mpv"
"mumble"
"musescore"
"nbd"
"ncftp"
"neofetch"
"nextcloud-client"
"nmap"
"noise-repellent"
"ntfs-3g"
"obs"
"openssh"
"openssl"
"pandoc"
"parted"
"patchelf"
"pavucontrol"
"pinentry"
"pkg-config"
"pngquant"
"powertop"
"python"
"python2"
"python-logutils"
"python-markdown"
"python-unidecode"
"python-virtualenv"
"qbittorrent"
"qjackctl"
"qpdf"
"recutils"
"rkrlv2"
"rsync"
"rubber"
"screen"
"seahorse"
"sherlock-lv2"
"shiru-lv2"
"signal-desktop"
"signing-party"
"simplescreenrecorder"
"sl"
"speedtest-cli"
"sqlitebrowser"
"supertux"
"supertuxkart"
"swh-plugins-lv2"
"sysprof"
"system-config-printer"
"tap-lv2"
"testdisk"
"texlive-babel"
"texlive-babel-french"
"texlive-beamer"
"texlive-beamertheme-metropolis"
"texlive-beamertheme-pure-minimalistic"
"texlive-beamertheme-trigon"
"texlive-biber"
"texlive-biblatex"
"texlive-collection-fontsrecommended"
"texlive-collection-latexrecommended"
"texlive-fira"
"texlive-float"
"texlive-fontawesome"
"texlive-fontawesome5"
"texlive-fontspec"
"texlive-geometry"
"texlive-graphics"
"texlive-hypdoc"
"texlive-hyperref"
"texlive-latex"
"texlive-latex-uni8"
"texlive-listings"
"texlive-ly1"
"texlive-paracol"
"texlive-pgfopts"
"texlive-raleway"
"texlive-scheme-basic"
"texlive-setspace"
"texlive-silence"
"texlive-smartdiagram"
"texlive-sourcesanspro"
"texlive-tabularray"
"texlive-texdoc"
"texlive-tikz-3dplot"
"texlive-titlesec"
"texlive-tocloft"
"texlive-transparent"
"texlive-url"
"texlive-xcolor"
"texlive-xetex"
"texlive-xstring"
"texmaker"
"tig"
"transmission"
"tree"
"uefitool"
"ungoogled-chromium"
"valgrind"
"vlc"
"x42-plugins"
"xauth"
"xdg-desktop-portal"
"xdg-desktop-portal-gtk"
"xdot"
"xdotool"
"xonotic"
"xournalpp"
"youtube-dl"
"yt-dlp"
"zplugins"
"zstd" ))

View File

@ -0,0 +1,202 @@
;; Ce fichier « manifeste » peut être passé à « guix package -m » pour reproduire
;; le contenu de votre profil. Son contenu est « symbolique » : il ne spécifie que les
;; noms des paquets. Pour reproduire exactement le même profil, vous devez aussi
;; retenir les canaux utilisés, ceux renvoyés par « guix describe ».
;; Voir la section « Répliquer Guix » dans le manuel.
(specifications->manifest
(list "adb"
"alsa-plugins"
"alsa-utils"
"ardour"
"atop"
"audacity"
"bash-completion"
"bind:utils"
"bluefish"
"calf"
"cambalache"
"chess"
"cmake"
"cmatrix"
"cpupower"
"cryptsetup"
"curl"
"cvs"
"dconf-editor"
"dino"
"dmidecode"
"dosage"
"eboard"
"endeavour"
"evolution"
"exfatprogs"
"fastboot"
"ffmpeg"
"flashrom"
"flatpak"
"font-awesome"
"font-liberation"
"font-openmoji"
"gdb"
"ghostwriter"
"gimp"
"git"
"git-lfs"
"git:send-email"
"gnome-builder"
"gnome-chess"
"gnome-font-viewer"
"gnome-power-manager"
"gnome-shell-extension-blur-my-shell"
"gnome-shell-extension-burn-my-windows"
"gnome-shell-extension-dash-to-dock"
"gnome-shell-extension-topicons-redux"
"gnome-shell-extension-transparent-window"
"gnome-tweaks"
"gnupg"
"gnuplot"
"gparted"
"graphviz"
"grub"
"gx-overdriver-lv2"
"gx-vintage-fuzz-master-lv2"
"gx-voodoo-fuzz-lv2"
"gzip"
"hexchat"
"hplip"
"htop"
"icecat-custom"
"inetutils"
"infamous-plugins"
"inkscape"
"jack"
"kapman"
"kbreakout"
"kdenlive"
"keysmith"
"ksirk"
"libnitrokey"
"libreoffice"
"libtree"
"licensecheck"
"linux-libre-documentation"
"lm-sensors"
"lollypop"
"make"
"man-pages"
"mediainfo"
"meld"
"memtester"
"microcom"
"minetest"
"minicom"
"mpv"
"mumble"
"musescore"
"nbd"
"ncftp"
"neofetch"
"nextcloud-client"
"nmap"
"noise-repellent"
"ntfs-3g"
"obs"
"openssh"
"openssl"
"pandoc"
"parted"
"patchelf"
"pavucontrol"
"pinentry"
"pkg-config"
"pngquant"
"powertop"
"python"
"python2"
"python-logutils"
"python-markdown"
"python-unidecode"
"python-virtualenv"
"qbittorrent"
"qjackctl"
"qpdf"
"recutils"
"rkrlv2"
"rsync"
"rubber"
"screen"
"seahorse"
"signal-desktop"
"signing-party"
"simplescreenrecorder"
"sl"
"speedtest-cli"
"sqlitebrowser"
"supertux"
"supertuxkart"
"swh-plugins-lv2"
"sysprof"
"system-config-printer"
"tap-lv2"
"testdisk"
"texlive-babel"
"texlive-babel-french"
"texlive-beamer"
"texlive-beamertheme-metropolis"
"texlive-beamertheme-pure-minimalistic"
"texlive-beamertheme-trigon"
"texlive-biber"
"texlive-biblatex"
"texlive-collection-fontsrecommended"
"texlive-collection-latexrecommended"
"texlive-fira"
"texlive-float"
"texlive-fontawesome"
"texlive-fontawesome5"
"texlive-fontspec"
"texlive-geometry"
"texlive-graphics"
"texlive-hypdoc"
"texlive-hyperref"
"texlive-latex"
"texlive-latex-uni8"
"texlive-listings"
"texlive-ly1"
"texlive-paracol"
"texlive-pgfopts"
"texlive-raleway"
"texlive-scheme-basic"
"texlive-setspace"
"texlive-silence"
"texlive-smartdiagram"
"texlive-sourcesanspro"
"texlive-tabularray"
"texlive-texdoc"
"texlive-tikz-3dplot"
"texlive-titlesec"
"texlive-tocloft"
"texlive-transparent"
"texlive-url"
"texlive-xcolor"
"texlive-xetex"
"texlive-xstring"
"texmaker"
"tig"
"transmission"
"tree"
"uefitool"
"ungoogled-chromium"
"valgrind"
"vlc"
"xauth"
"xdg-desktop-portal"
"xdg-desktop-portal-gtk"
"xdot"
"xdotool"
"xonotic"
"xournalpp"
"youtube-dl"
"yt-dlp"
"zplugins"
"zstd" ))

View File