Markus Hiereth © Markus Hiereth
www.hiereth.de
2007sm
28.11.2021

SEAMONKEY FÜR BETAGTE PROZESSOREN
Erstellung einer ohne SSE2-Befehlssatzerweiterung arbeitenden Binärversion

Hintergrundinformation

Das Seamonkey-Projekt [1] stellt seinen Browser in Form des Quellcodes und als lauffähigen Maschinencode (Binärpaket) zur Verfügung. Im Regelfall wird der Anwender letzteren herunterladen und erspart sich so das aufwendige und Expertenwissen voraussetzende Kompilieren. Dabei verloren geht allerdings auch die Möglichkeit, die Software an Gegebenheiten der Hardware anzupassen.
Ab der Version 2.49.5 vom September 2019 verlangte das Binärpaket für 32-Bit-Prozessoren und das Betriebssystem Linux, dass der Prozessor in der Lage ist, SSE2-Befehle zu verarbeiten. Die Einführung von SSE2 [2] geschah um das Jahr 2000 herum, zuerst bei Intel, etwas später bei AMD. Somit war der Browser an Computern, in welchen ältere Prozessoren verbaut sind, nach besagtem Update nicht mehr verwendbar und meldete "Ungültiger Maschinenbefehl".

Durchführung

Die Kompilierung der am 16.11.2021 erschienenen Version 2.53.10 erfolgte im Wesentlichen wie im Linux-from-Scratch-Projekt [3] umrissen auf einem Debian-Linux-System. Dass der Maschinencode für einen nicht SSE2-fähigen Prozessor ausführbar sein soll, wurde in der Datei mozconfig [4]festgelegt. Ihr werden unter anderem die Einstellungen für den/die Compiler entnommen.
z1  |  export CC=gcc
z2  |  export CXX=g++
z3  |  export CFLAGS="$CFLAGS -m32 -mmmx -march=k6" 
z4  |  export CXXFLAGS="$CXXFLAGS -m32 -mmmx -march=k6"
z5  |  ac_add_options  --target=i586-unknown-linux-gnu
z6  |  ac_add_options  --with-system-bz2
z7  |  ac_add_options  --with-system-icu
z8  |  ac_add_options  --with-system-jpeg
z9  |  ac_add_options  --with-system-png
z10 |  ac_add_options  --with-system-zlib
z11 |  ac_add_options  --with-system-libevent
z12 |  ac_add_options  --with-system-nspr
z13 |  ac_add_options  --with-system-nss
z14 |  ac_add_options  --with-system-webp
Mit der Option -march=k6 in den Zeilen 3 und 4 wird dem Compiler GCC mitgeteilt, dass der Maschinencode für einen Prozessor der Klasse k6 bestimmt ist. Der AMD Duron gehört dieser Klasse an.
Teile des Quellcodes sind in der Sprache Rust programmiert. In Zeile 7 ist hinterlegt, für welchen Prozessor der Rust-Compiler den Maschinencode erzeugen soll. Mit der Option --target=i586-unknown-linux-gnu in der mozconfig-Datei wird an ihn weitergegeben, dass das ausführbare Programm für x86er-Prozessoren bestimmt ist, die keine SSE2-Befehle verarbeiten können.

Ergebnis

Die Dateien des Browsers wurden als Archivdatei gepackt und werden in dieser Form zum Download zur Verfügung gestellt.
Link:          seamonkey-2.53.10-211127-k6.tgz
MD5-Prüfsumme: ab0e8f75becbdbb8ae52270d56ef7263
Dateiliste:    http://www.hiereth.de/programm/2007sm-1.html
Die Archivdatei sollte im Verzeichnis /usr/local entpackt werden.
cd /usr/local
tar xzvf /pfad/zur/datei/seamonkey-2.53.10-211127-k6.tgz
Wie die meisten komplexen Anwendungsprogramme verwendet Seamonkey grundlegende Funktionen, die mit sogenannten Bibliotheken, englisch "Shared Libraries", bereitgestellt werden. Diese müssen nur einmal auf dem System vorhanden sein. Die Anweisungen in Zeile 6 bis 14 der mozconfig-Datei geben an, welche Bibliotheken nicht kompiliert werden müssen, da sie auf dem System schon verfügbar sind.
Da Seamonkey eine neuere als die in Debian 11 enthaltene Version der Bibliothek libwebp6 benötigt, wurde dieses Paket auch als Quellcode besorgt und kompiliert.
Link:          libwebp-1.2.1-211109.tgz
MD5-Prüfsumme: f410d83580272969da336dcaef23e188  
Dateiliste:    http://www.hiereth.de/programm/2007sm-2.html
  
Wenn Sie Bibliotheken aus so einem Paket in das Verzeichnis /usr/local entpacken, sie also nicht über das Paketmanagement Ihrer Linux-Distribution installiert wurden, müssen Sie mit dem Befehl
ldconfig
die Auflistung, welche Bibliotheken an welchem Speicherort verfügbar sind, aktualisieren. Sollten weitere Bibliotheken fehlen, erhalten Sie bei Aufruf von /usr/local/bin/seamonkey eine Meldung.
Zur direkten Wiedergabe von in Internetseiten eingebetteten Mediendateien greift Seamonkey auf den Hintergrundprozesses pulseaudio zurück. Sollte dieser Prozess nicht installiert oder nicht aktiv sein, lassen sich Audiodateien nicht starten beziehungsweise Videodateien werden stumm abgespielt.

Bildschirmfotos Seamonkey

Surfen im Internet Mailkommunikation Seitenerstellung Chatkommunikation
Browser Mailprogramm HTML-Editor Chatprogramm

Abschließende Bemerkung

Seamonkey wurde für mich zum bevorzugten Browser, als die Entwickler von Firefox meinten, durch die Abschaffung des Menüs am oberen Rand der Bedienoberfläche dem Nutzer irgendetwas Gutes zu tun. Das damit fällige Suchen nach Befehlen und Einstellungen empfand ich als unerquicklich. So karg die Bedienoberfläche bei Firefox und aktuellen Browsern ist, so mitteilungsbedürftig scheinen sie programmiert. So behelligt Firefox seine Nutzer immer wieder einmal mit überflüssigen Meldung "Eine Seite verlangsamt Firefox". Wenn sich eine Seite verzögert aufbaut, kann dies vielerlei Gründe haben und es völlig uninteressant, ob der angesprochene Server im Internet, die Internetverbindung des Nutzers, die eigene Hardware oder der Browser verantwortlich sind. Es ist ärgerlich, dass die Firefox-Entwickler meinen, mit so einer Meldung das Image ihres Produktes aufpolieren zu müssen.
Die eigentlichen Bremsen bei der Nutzung des Internets sind meiner Einschätzung nach Vorgänge, auf die viele gerne verzichten würden: Schriftarten, die erst bei Google geholt werden. Cookies und Skripte, anhand derer versucht wird, den Internetnutzer zu durchleuchten, des weiteren aufpoppende Werbung, animierte Texte, Diashows und Videos mit geringem Informationswert, die ablenken und an denen es oftmals liegt, dass man sich, nachdem eine Seite komplett aufgebaut ist, fragt, was man dort eigentlich in Erfahrung bringen wollte.

Anmerkungen und Verweise

1
https://www.seamonkey-project.org.
2
Wikipedia zur Befehlssatzerweiterung SSE2.
3
Anleitung zur Kompilierung von Seamonkey.
4
Die Datei mozconfig zur Ansicht oder zum Herunterladen.