Contenu
/usr/lib/seamonkey
Seamonkey est une suite internet, un successeur de Netscape. Elle inclut le navigateur, le compositeur, des clients de messagerie et de nouvelles et un client IRC.
C'est le successeur communautaire de la suite d'application Mozilla, créée après que Mozilla a décidé de se concentrer sur des applications séparées pour la navigation et les courriels. Ces applications sont Firefox-128.7.0 et Thunderbird-128.7.1esr.
Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.3.
Téléchargement (HTTP) : https://archive.seamonkey-project.org/releases/2.53.20/source/seamonkey-2.53.20.source.tar.xz
Somme de contrôle MD5 du téléchargement : 1b506ff751f39b2480ba4e16afb86d6d
Taille du téléchargement : 237 Mo
Estimation de l'espace disque requis : 4,4 Go (150 Mo installés)
Estimation du temps de construction : 6,8 SBU (avec parallélisme = 8)
Correctif recommandé (requis pour construire avec la version du système d'ICU-75 ou supérieur) : https://www.linuxfromscratch.org/patches/blfs/12.3/seamonkey-2.53.20-cxx17-1.patch
L'archive seamonkey-2.53.20.source.tar.xz se décompactera dans le répertoire seamonkey-2.53.20.
Cbindgen-0.28.0, GTK-3.24.48, libarchive-3.7.7, Python-3.11.1, yasm-1.3.0 et Zip-3.0
ICU-76.1, libevent-2.1.12, libwebp-1.5.0, LLVM-19.1.7 (avec clang), NASM-2.16.03, NSPR-4.36, nss-3.108 et PulseAudio-17.0
Si vous n'installez pas les dépendances recommandées, alors des copies internes de ses paquets seront utilisées. Elles sont testées pour fonctionner, mais elles peuvent être dépassées ou contenir des trous de sécurité.
alsa-lib-1.2.13, dbus-glib-0.112, nodejs-22.14.0, Valgrind-3.24.0, Wget-1.25.0, Wireless Tools-29, Hunspell et Watchman
La configuration de Seamonkey se
fait en créant un fichier mozconfig
contenant les options de configuration désirées. Un fichier
mozconfig
par défaut est créé
ci-dessous. Pour voir toute la liste des options de configuration
disponibles (et une description abrégée de chacune), exécutez
python3 configure.py
--help. Il se peut que vous vouliez aussi relire
tout le fichier et dé-commenter d'autres options souhaitées. Créez
le fichier en exécutant la commande suivante :
cat > mozconfig << "EOF"
# Si vous avez une machine avec plusieurs cœurs, tous les cœurs seront utilisés
# Si vous avez installé DBus-Glib, commentez cette ligne :
ac_add_options --disable-dbus
# Si vous avez installé dbus-glib et avez installé (ou allez installer)
# wireless-tools, et si vous souhaitez utiliser les services web de géolocalisation, commentez
# cette ligne
ac_add_options --disable-necko-wifi
# Décommentez ces lignes si vous avez installé les dépendances facultatives :
#ac_add_options --enable-system-hunspell
# Décommentez l'option suivante si vous n'avez pas installé PulseAudio
#ac_add_options --disable-pulseaudio
# et décommentez celle-ci si vous avez installé alsa-lib au lieu de PulseAudio
#ac_add_options --enable-alsa
# Commentez l'option suivante
# Commentez les options suivantes si vous n'avez pas installé
# les dépendances recommandées :
ac_add_options --with-system-icu
ac_add_options --with-system-libevent
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp
# Désactiver les symboles de débogage rend la construction bien plus petite et un peu
# plus rapide. Commentez cela si vous avez besoin d'exécuter un débogueur.
ac_add_options --disable-debug-symbols
# L'option elf-hack peut causer des échecs à l'installation (après une construction correcte)
# sur certaines machines. Il est censé améliorer le temps de chargement et diminue
# libxul.so de quelques Mo. Avec les versions récentes de Binutils l'éditeur des liens
# prend déjà en charge une manière plus sûre et générique de faire cela.
ac_add_options --disable-elf-hack
ac_add_options --enable-linker=bfd
export LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"
# Seamonkey a des fonctionnalités supplémentaires qui ne sont pas activées par défaut,
# comme un client IRC, un calendrier et un inspecteur du DOM. L'inspecteur du DOM
# aide à la conception de pages web. Commentez ces options si vous n'avez pas besoin
# de ces fonctionnalités.
ac_add_options --enable-calendar
ac_add_options --enable-dominspector
ac_add_options --enable-irc
# Les auteurs de BLFS recommandent de ne pas changer quoi que ce soit en dessous de cette ligne :
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/suite
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
# Le code SIMD s'appuie sur le crate packed_simd qui n'est plus maintenu et
# échoue à la construction avec Rustc >= 1.78.0. Nous pourrons le ré-activer une fois
# que Mozilla aura porté le code pour utiliser std::simd et que std::simd est stabilisé.
ac_add_options --disable-rust-simd
ac_add_options --enable-strip
ac_add_options --enable-install-strip
# Vous ne pouvez pas distribuer le binaire si vous utilisez cette option.
ac_add_options --enable-official-branding
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
export CC=clang CXX=clang++
EOF
Si vous compilez ce paquet dans un chroot vous vous assurer que
/dev/shm
est monté. Si vous ne le
faites pas, la configuration en Python échouera avec une trace faisant
référence à /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
En tant qu'utilisateur root
,
exécutez :
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Tout d'abord, si vous construisez avec le paquet ICU du système, adaptez les retours à la ligne pour ICU-74 et supérieur, appliquez un correctif pour construire ce paquet avec le standard C++17 car les en-têtes de ICU-75 et supérieur nécessitent des fonctionnalités de C++17 et adaptez le système de construction pour utiliser la bonne bibliothèque avec ICU-76 et supérieur :
(for i in {43..47}; do sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $? done) && patch -Np1 -i ../seamonkey-2.53.20-cxx17-1.patch && sed -i 's/icu-i18n/icu-uc &/' js/moz.configure
Ensuite, supprimez un bout de code qui ne respecte pas le standard C++. Clang a commencé à le rejeter même s'il est inutilisé depuis la version 19.1.0 :
sed -e '/ExclusiveData(ExclusiveData&&/,/^ *}/d' \ -i js/src/threading/ExclusiveData.h
Ensuite, corrigez un problème avec le module python « distro » intégré :
sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \ -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \ -i third_party/python/distro/distro.py
Compilez Seamonkey en exécutant les commandes suivantes :
export PATH_PY311=/opt/python3.11/bin:$PATH && PATH=$PATH_PY311 AUTOCONF=true MACH_USE_SYSTEM_PYTHON=1 ./mach build
Ce paquet n'a pas de suite de tests.
Installez Seamonkey en exécutant
les commandes suivantes en tant qu'utilisateur root
:
Si sudo ou
su est invoqué pour
ouvrir un shell qui tourne en root
, assurez-vous que PATH PY311
est correctement passé ou la commande
suivante échouera. Pour sudo, utilisez l'option
--preserve-env=PATH_PY311
. Pour
su, n'utilisez
pas les options
-
ou --login
.
PATH=$PATH_PY311 MACH_USE_SYSTEM_PYTHON=1 ./mach install && chown -R 0:0 /usr/lib/seamonkey && cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1
Enfin, désactivez la variable PATH_PY311
:
unset PATH_PY311
export CC=clang CXX=clang++ : avec l'introduction de gcc-12, bien plus d'avertissements sont générés lors de la compilation des applications mozilla et cela rend la construction plus lente et plus grosse. En plus, la construction avec GCC sur i?86 est actuellement cassée. Bien que le code de mozilla en amont utilise llvm par défaut à moins d'être modifié, l'ancien code de configuration de Seamonkey utilise gcc par défaut.
./mach build --verbose
: utilisez
cette alternative si vous avez besoin de détails sur les fichiers
qui sont compilés, avec les drapeaux C ou C++ utilisé. Mais
n'ajoutez pas « --verbose » à la commande d'installation,
l'option n'y est pas acceptée.
./mach build -jN
: la construction
devrait, par défaut, utiliser tous les cœurs de CPU en ligne. Si
utiliser tous les cœurs fait utiliser l'espace d'échange à la
construction parce que vous n'avez pas asse de mémoire, utiliser
moins de cœurs peut être plus rapide.
Pour installer les différents plugins de Seamonkey, reportez-vous à Greffons pour Seamonkey.
Tout en utilisant le menu « Préférences » pour configurer les
options et les préférences de Seamonkey pour les adapter à vos propres
goûts, un contrôle bien plus approfondi de nombreuses options n'est
disponible qu'en utilisant un outil non disponible depuis le
système de menu général. Pour accéder à cet outil, vous devrez
ouvrir une fenêtre du navigateur et saisir about:config
dans la barre d'adresse. Cela
affichera une liste des préférences de configuration et des
informations liées à chacune. Vous pouvez utiliser la barre de
« Filtre: » pour saisir des critères de
recherche et réduire les éléments listés. La modification d'une
préférence se fait en utilisant deux méthodes. L'une, si la
préférence a une valeur booléenne (True/False, Vrai/Faux),
double-cliquez simplement sur la préférence pour basculer la
valeur, et l'autre, pour les préférences, faites simplement un clic
droit sur la ligne désirée, choisissez « Modifier »
dans le menu et modifiez la valeur. La création de nouveaux
éléments de préférence se fait de la même façon, sauf qu'il faut
choisir « Nouveau » depuis le menu et fournir les
données désirées dans les champs quand on vous le demande.
Si vous utilisez un environnement de bureau comme Gnome ou KDE
vous pourriez souhaiter créer un fichier seamonkey.desktop
pour que Seamonkey apparaisse dans les menus du bureau.
Si vous n'avez pas activé Startup-Notification dans votre mozconfig,
modifiez la ligne StartupNotify en false. En tant qu'utilisateur
root
:
mkdir -pv /usr/share/{applications,pixmaps} &&
cat > /usr/share/applications/seamonkey.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Seamonkey
Comment=The Mozilla Suite
Icon=seamonkey
Exec=seamonkey
Categories=Network;GTK;Application;Email;Browser;WebBrowser;News;
StartupNotify=true
Terminal=false
EOF
ln -sfv /usr/lib/seamonkey/chrome/icons/default/default128.png \
/usr/share/pixmaps/seamonkey.png
/usr/lib/seamonkey