Skip to main content

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - noabody

1
I have an old AMD K7 "Barton" computer.  After finding this forum, I put 32-bit Xubuntu 18.04.1 on it and am happy to report that otter-browser works as well as noted.

I can confirm JSC_useJIT=0 otter-browser has the same effect as disabling JIT in qtwebkit.  The options are:

Code: [Select]
    JSC_useJIT=0 - try running JS in interpreted-only mode, no compilation
    JSC_useLLInt=0 - avoid using interpreter, use only JIT
    JSC_useDFGJIT=0 - disable DFG and FTL tiers of JIT, leaving only baseline JIT
    JSC_useFTLJIT=0 - disable FTL JIT (only makes sense if it is enabled in your build; FTL is not available on 32-bit platforms and on Windows)

A command like...
Code: [Select]
(grep -Pi 'jsc_usejit' "$HOME/.profile") || echo "export JSC_useJIT=0" >> "$HOME/.profile"

var="JSC_useJIT" ; val="0" ; (grep -Pi "$var" "$HOME/.profile") && perl -pi -e "s|(.*$var)=.*|\\1=$val|gi" "$HOME/.profile" || echo "export $var=$val" >> "$HOME/.profile"
... will add (or modify) Ubuntu's global environment variable in .profile.

For the sake of curiosity, I decided to build a non-JIT qtwebkit-opensource-src, in a 32-bit Ubuntu LXC, with this change to debian/rules:
Code: [Select]
# JIT is only supported on x86 / armhf / aarch64 / mips32
ifeq (,$(filter $(DEB_HOST_ARCH),amd64 arm64 armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel))
 EXTRA_CMAKE_ARGUMENTS += -DENABLE_JIT=OFF
endif
Code: [Select]
# JIT is only supported on x86 / armhf / aarch64 / mips32
 EXTRA_CMAKE_ARGUMENTS += -DENABLE_JIT=OFF

This ensures the library is built with JIT disabled. The build process is typical:
Code: [Select]
sudo apt build-dep qtwebkit-opensource-src
apt source qtwebkit-opensource-src
cd qtwebkit-opensource-src-5.212.0~alpha2
(change debian/rules as noted)
dch -i (ctrl+x)
DEB_BUILD_OPTIONS="nocheck notest nodocs parallel=4" debuild -d -b -uc -us -nc -j4
cd ..
sudo dpkg -i libqt5webkit5_5.212.0~alpha2-7ubuntu1_i386.deb

otter-browser didn't build on Ubuntu 18.04.1 without a minor edit to CMakeLists.txt.
Code: [Select]
find_package(Qt5WebEngineWidgets 5.9.0 QUIET)
Then, to build:
Code: [Select]
sudo apt install libhunspell-dev libqt5core5a libqt5dbus5 libqt5gui5 libqt5multimedia5 libqt5network5 libqt5printsupport5 libqt5qml5 libqt5svg5-dev libqt5webenginewidgets5 libqt5webkit5-dev libqt5widgets5 libqt5xmlpatterns5 libqt5xmlpatterns5-dev qt5-default qtmultimedia5-dev qttools5-dev qttools5-dev-tools qtwebengine5-dev
git clone --branch master --depth 1 --recursive https://github.com/OtterBrowser/otter-browser.git
cd otter-browser
(mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_QTWEBENGINE=OFF -DCMAKE_INSTALL_PREFIX=/usr ..)
make -C build -j4
sudo checkinstall make -C build install

The package maintainer's version of checkinstall seg-faults and requires a hybrid patch, based on the working git and debian sources.  You can find it at checkinstall debian patch

The noted dependencies and instructions are provided to help save time for those interested in building otter from source (modified qtwebkit unneeded).  The better bet is to use a pre-built i386 package from Otter Browser Ubuntu PPA

Even with JIT disabled, some websites can still cause otter-browser to hang.  For those that do, use "Tools > Preferences > Advanced > Content".  Under "Website Preferences > Add > Website" use the smallest portion of the URL required to identify the site, e.g. "launchpad.net".  On the "Scripting" tab, "Override Enable JavaScript" which should disable it.  These problem websites cause JavaScript issues in all browsers, not just otter.

Eventually, I was able to get both otter-browser and midori to work.  Xubuntu installer warns the processor doesn't support LFENCE for spectre v2 patch, and falls back to retpoline.  Not surprising since LFENCE is an SSE2 instruction.

Having used otter a bit I can say with confidence that it is the finest browser one could hope for on an old non-SSE2 PC running Linux.