site  contact  subhomenews

YouTube downloader fixes

December 01, 2021 — BarryK

The guys are helping me test EasyOS 3.1.11:

https://forum.puppylinux.com/viewtopic.php?t=4529

Forum member hundido reported that the YouTube GUI app (in Internet menu) downloaded to /root.

I would like all apps to default to download to /files/download, so I fixed the YouTube downloader package.

The YouTube downloader GUI is a frontend for /usr/bin/youtube-dl, which is a python script. A problem is that YouTube move the goal posts, in an attempt to stop these downloaders from working. The youtube-dl developers respond by changing their script so that it works again.

The GUI has an "Update" button, however, I have modified the build in woofQ so that the latest youtube-dl script will be downloaded and used every time that I release a new version of EasyOS.  

Tags: easy

Nemiver debugger now in devx SFS

November 28, 2021 — BarryK

Yesterday, I posted about compiling SeaMonkey 1.1.19 but it segfaulted at startup:

https://bkhome.org/news/202111/seamonkey-1119-compiled-in-easyos.html

I started a discussion about how to trace where in the code the segfault is occurring:

https://forum.puppylinux.com/viewtopic.php?t=4580

Mike (mikewalsh) responded with a great link that lists lots of Linux debugger/trace tools. The EasyOS devx SFS already has the 'gdb' CLI utility, and I saw on that link, there are 'ddd' and 'nemiver' GUI frontends for gdb.

I went for nemiver and compiled it. The project seems to be almost dead, but then, if it works, perhaps no need for more commits to the git repository. I chose version 0.8.2, not the latest, but it suited me to stay with a gtk+2 based app rather than gtk+3.

Two dependencies, 'gtkmm' and 'libgtop', are compiled in OpenEmbedded. I compiled 'libgtksourceviewmm' and 'nemiver' in a running EasyOS and made them into PETs.

Nemiver will be in the devx SFS in the next release of EasyOS.

Nemiver project page:

https://gitlab.gnome.org/Archive/nemiver

Regarding nemiver 0.8.2, the source code required fixes to compile with gcc 9.3.0. This is a problem with C++ code, the Gnu C++ compiler moves the goal posts with later versions.
I don't think that I will upload patches, but at least should upload my modified source tarball.

Haven't attempted to debug SeaMonkey 1.1.19 yet. First, I want to compile it with a different 'mozconfig' file. David W. sent me an email with a link to a 'mozconfig' file that was used to compile SM 1.1.19 and that has given me some thoughts about changes to the configuration ...that hopefully might result in an executable that doesn't segfault!

EDIT 2021-12-01:
Patched source uploaded:

http://distro.ibiblio.org/easyos/source/alphabetical/n/nemiver-0.8.2-p1.tar.gz    

Tags: easy

SeaMonkey 1.1.19 compiled in EasyOS

November 27, 2021 — BarryK

I posted yesterday about compiling BlueGriffon:

https://bkhome.org/news/202111/bluegriffon-compiled-but-is-broken.html

I received an email from scsijon, about the history of the BlueGriffon releases. He commented that 3.2pre in github is crap and the developers abandoned the project. He also commented that 3.1 has bugs and 3.0.1 is quite good, and either should be OK.

WYSIWYG HTML editors are currently being discussed on the forum:

https://forum.puppylinux.com/viewtopic.php?t=4543

https://forum.puppylinux.com/viewtopic.php?t=4544

As I seem to have settled on Firefox as the main browser in EasyOS, I still want to keep a WYSIWYG HTML editor in the build, builtin. So, my mind turned to considering old versions of SeaMonkey...

Looking at my old notes, the 1.1 series look good. Very old, version 1.1.19 was the last, released, I think, in 2010. The 1.1 series was the last, I think, that can be configured to build a standalone composer.

But, then, with SM you get the browser and composer editor, both, for not much increase in size. So why not build the suite. The browser could be a substitute for the 'surfer' HTML viewer that I am currently using to view local help files in Easy.

Now for the good news: it compiled (but I left out the mail&news module), and the resulting binary package is only 9MB. Compare that with SM 2.53.x package, which is over 51MB!

The EasyOS .img.gz download file is 594MB and I want very much to bring that down. Building with both Firefox and SM has contributed to that huge size. Knocking off 43MB would be great. Well, even more, as would get rid of 'surfer'.

Now for the bad news: it segfaulted at startup.

I am going to put out a request for help on the forum. I will recompile with debug symbols left in, and will trace where the crash is occurring. I used to do crash tracing back in my Windows programming days, but never really got into it with Linux, and the little bit of Linux crash tracing I did attempt was a very long time ago, I cannot recall what I did ...think used the 'gdb' utility.

Anyway, my rough notes are here:

easyos 3.1.11
install python2 pet.

nss pkg compiled on oe:
copy libcrmf.a to /usr/lib

needs libidl:
# tar -xf libIDL-0.8.14.tar.bz2
# cd libIDL-0.8.14
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=x86_64-pc-linux-gnu
# make
# makeinfo --plaintext -o libIDL2.txt libIDL2.texi
# new2dir make install

sm want the old pangox lib:
# ln -s /usr/include/pango-1.0/pango /usr/include/pango
https://github.com/behdad/pangox-compat
# ./autogen.sh
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=x86_64-pc-linux-gnu
# make
# new2dir make install

# tar -xf seamonkey-1.1.19.source.tar.bz2
# cp -a -f mozconfig mozilla/.mozconfig
# cd mozilla

# patch -p1 < ../t2/gtk2-x11-libs.patch
patching file layout/build/Makefile.in
# patch -p1 < ../t2/MOZ_PLUGIN_PATH.patch
patching file xpfe/bootstrap/mozilla.in
Hunk #1 succeeded at 239 with fuzz 2 (offset 120 lines).
# export MOZCONFIG=`pwd`

NO# export CFLAGS+=' -fpermissive'
# export CXXFLAGS+=' -fpermissive'

edit 'configure' script, now have /usr/lib/pkgconfig/pangox.pc:
line 13652:
if $PKG_CONFIG --exists "pangox >= 1.1.0" ; then
line 13658:
_PANGOCHK_CFLAGS=`$PKG_CONFIG --cflags "pangox >= 1.1.0"`
line 13665:
_PANGOCHK_LIBS="`$PKG_CONFIG --libs-only-L \"pangox >= 1.1.0\"` `$PKG_CONFIG --libs-only-l \"pangox >= 1.1.0\"`"
line 13672:
_PANGOCHK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pangox >= 1.1.0"`

see below, was getting mailnews extension smime fail.
NONOedit 'configure' unset MOZ_PSM line 13023:
NONO MOZ_PSM=
NOno, that is set or unset by --enable-crypto
NOinstead edit mozilla/mailnews/extensions/Makefile.in line 49:
NOBUILD_SMIME=
instead, for now, disable mailnews

# rm -rf objdir-sm-release
# make -f client.mk build

/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/xpcom/glue/nsBaseHashtable.h:145:30: error: ‘PutEntry’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
145 | EntryType* ent = PutEntry(aKey);
| ~~~~~~~~^~~~~~
line 145:
EntryType* ent = this->PutEntry(aKey);
line 159:
void Remove(KeyType aKey) { this->RemoveEntry(aKey); }
line 126:
EntryType* ent = this->GetEntry(aKey);

/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/xpcom/glue/nsClassHashtable.h:101:13: error: ‘GetEntry’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
101 | GetEntry(aKey);
| ~~~~~~~~^~~~~~
line 101:
this->GetEntry(aKey);

../../dist/include/xpcom/nsInterfaceHashtable.h:114:13: error: ‘GetEntry’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
114 | GetEntry(aKey);
| ~~~~~~~~^~~~~~
mozilla/xpcom/glue/nsInterfaceHashtable.h line 114:
this->GetEntry(aKey);
line 142:
this->GetEntry(aKey);

NOc++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O -o regxpcom regxpcom.o -L../../../dist/bin -L../../../dist/lib ../../../dist/lib/libxpcomglue.a -L../../../dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -ldl -lm
NO/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: ../../../dist/bin/libnspr4.so: undefined reference to `_PR_x86_64_AtomicIncrement'
NO/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: ../../../dist/bin/libnspr4.so: undefined reference to `_PR_x86_64_AtomicDecrement'
NO/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: ../../../dist/bin/libnspr4.so: undefined reference to `_PR_x86_64_AtomicSet'
NO/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: ../../../dist/bin/libnspr4.so: undefined reference to `_PR_x86_64_AtomicAdd'
NOcollect2: error: ld returned 1 exit status

../../../dist/include/system_wrappers/pango/pangox.h:3:15: fatal error: pango/pangox.h: No such file or directory
3 | #include_next <pango/pangox.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
...want older 1.0 pango. try this hack:
ALREADY DONE# ln -s /usr/include/pango-1.0/pango /usr/include/pango
NO# ln -s pangoxft.h /usr/include/pango-1.0/pango/pangox.h
...found pangox-compat library, see above.

../../../dist/include/xpcom/nsRefPtrHashtable.h:143:13: error: ‘GetEntry’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
143 | GetEntry(aKey);
| ~~~~~~~~^~~~~~
mozilla/xpcom/glue/nsRefPtrHashtable.h line 143:
this->GetEntry(aKey);

/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/layout/forms/../xul/base/src/nsStackFrame.h:55:19: error: friend declaration of ‘nsresult NS_NewStackFrame(nsIPresShell*, nsIFrame**, nsIBoxLayout*)’ specifies default arguments and isn’t a definition [-fpermissive]
55 | friend nsresult NS_NewStackFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame, nsIBoxLayout* aLayout = nsnull);
| ^~~~~~~~~~~~~~~~
trying with -fpermissive, see above.

make[4]: Entering directory '/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/security/coreconf'
/usr/bin/make -j1: *** No rule to make target ../coreconf/Linux5.10.mk. Stop.
../coreconf/config.mk:71: ../coreconf/Linux5.10.mk: No such file or directory
make[4]: *** [../coreconf/rules.mk:913: ../coreconf/Linux5.10.mk] Error 1
...this is because it wants to compile inbuilt nss.
i should go for system nss, but for now, just to find out what happens,
copy mozilla/security/coreconf/Linux2.6mk to Linux5.10.mk

/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/security/manager/ssl/src/nsPKCS11Slot.cpp:425:52: error: unable to find string literal operator ‘operator""fips’ with ‘const char [136]’, ‘long unsigned int’ arguments
425 | SECMOD_CreateModule(NULL,SECMOD_INT_NAME, NULL,SECMOD_INT_FLAGS);
| ^~~~~~~~~~~~~~~~
edit configure, unset MOZ_PSM -- see above.

have apended to mozconfig:
ac_add_options --with-system-nss
ac_add_options --with-system-nspr

getting link error with --enable-shared:
NOalso changed:
NOac_add_options --disable-static
NObut must have one of these enabled:
NOac_add_options --enable-shared

these are still broken (sqlite compile fail):
NOyeh, let's go for it, change these also, to enabled:
NOac_add_options --enable-storage
NOac_add_options --enable-places

recompiling...

make[6]: Entering directory '/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/objdir-sm-release/mailnews/extensions/smime/build'
Makefile:83: *** missing separator. Stop.

have decided to --disable-mailnews for now, to hopefully
get it to finish compiling.

why is this here?
ac_add_options --enable-module=psm
...comment it out.

c++ -o seamonkey-bin -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fpermissive -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O -DWIDGET_DLL=\"libwidget_gtk2.so\" -DGFXWIN_DLL=\"libgfx_gtk2.so\" -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 nsAppRunner.o showOSAlert.o nsSigHandlers.o nsStackFrameUnix.o nsStaticComponents.o nsNativeAppSupportGtk.o nsNativeAppSupportBase.o -L../../dist/bin -L../../dist/lib -L../../dist/lib/components ../../widget/src/xremoteclient/libxremote_client_s.a -L../../dist/bin -lxpcom -lxpcom_core -L../../dist/bin -lmozjs -L/usr/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lX11 -lgthread-2.0 -ldl -lm ../../dist/lib/components/libxpcom_compat_c.a ../../dist/lib/components/libxpconnect.a ../../dist/lib/components/libuconv.a ../../dist/lib/components/libi18n.a ../../dist/lib/components/libmork.a ../../dist/lib/components/libnecko.a ../../dist/lib/components/libnecko2.a ../../dist/lib/components/libpref.a ../../dist/lib/components/libcaps.a ../../dist/lib/components/librdf.a ../../dist/lib/components/libhtmlpars.a ../../dist/lib/components/libgfxps.a ../../dist/lib/components/libgfx_gtk.a ../../dist/lib/components/libimglib2.a ../../dist/lib/components/libgkplugin.a ../../dist/lib/components/libwidget_gtk2.a ../../dist/lib/components/libgklayout.a ../../dist/lib/components/libdocshell.a ../../dist/lib/components/libembedcomponents.a ../../dist/lib/components/libwebbrwsr.a ../../dist/lib/components/libeditor.a ../../dist/lib/components/libtxmgr.a ../../dist/lib/components/libcomposer.a ../../dist/lib/components/libnsappshell.a ../../dist/lib/components/liboji.a ../../dist/lib/components/libchrome.a ../../dist/lib/components/libprofile.a ../../dist/lib/components/libnsprefm.a ../../dist/lib/components/libmozfind.a ../../dist/lib/components/libappcomps.a ../../dist/lib/components/libfileview.a ../../dist/lib/components/libxremoteservice.a ../../dist/lib/components/libremoteservice.a ../../dist/lib/components/libpipboot.a ../../dist/lib/components/libpipnss.a ../../dist/lib/components/libpippki.a ../../dist/lib/components/libcookie.a ../../dist/lib/components/libtransformiix.a ../../dist/lib/components/libwallet.a ../../dist/lib/components/libwalletviewers.a ../../dist/lib/components/libxmlextras.a ../../dist/lib/components/libautoconfig.a ../../dist/lib/components/libsystem-pref.a ../../dist/lib/components/libuniversalchardet.a ../../dist/lib/components/libpermissions.a ../../dist/lib/components/libtypeaheadfind.a ../../dist/lib/components/libsearchservice.a ../../dist/lib/libunicharutil_s.a ../../dist/lib/libucvutil_s.a ../../dist/lib/libgtkxtbin.a ../../dist/lib/libgfxshared_s.a ../../dist/lib/libgfxpsshar.a ../../dist/lib/libgkgfx.a ../../dist/lib/libjsj.a -L../../dist/lib -lmozpng -ljpeg -lz -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lcrmf -lcairo -lXinerama -lXt -lXft -L../../dist/lib -lxpcom_compat
/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: /usr/lib/libcairo.so: undefined reference to symbol 'XRenderFindStandardFormat'
/usr/lib/gcc/x86_64-poky-linux/9.3.0/../../../../x86_64-poky-linux/bin/ld: /usr/lib/libXrender.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[3]: *** [/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/config/rules.mk:816: seamonkey-bin] Error 1
make[3]: Leaving directory '/mnt/sda1/downloads/downloads2/input589/seamonkey-1.1.19/mozilla/objdir-sm-release/xpfe/bootstrap'

...it needs these extras:
-lX11 -lXrender -lxcb -lXau -lXdmcp
i have done it manually:
i edited mozilla/objdir-sm-release/config/autoconf.mk line 267:
XLDFLAGS = -lX11 -lXrender -lxcb -lXau -lXdmcp
...works, but need to find original place to do this.
so now have mozilla/objdir-sm-release/xpfe/bootstrap/seamonkey-bin

# make -f client.mk install

Here is gtk2-x11-libs.patch:

--- mozilla/layout/build/Makefile.in.orig	2006-07-17 21:05:13.000000000 +0200
+++ mozilla/layout/build/Makefile.in 2007-06-19 16:36:01.000000000 +0200
@@ -226,6 +226,7 @@

ifdef MOZ_ENABLE_GTK2
EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) \
+ $(XLDFLAGS) -lX11 -lXrender \
$(NULL)
endif

Here is MOZ_PLUGIN_PATH.patch:

--- ./xpfe/bootstrap/mozilla.in.vanilla	2005-09-21 12:45:56.000000000 +0200
+++ ./xpfe/bootstrap/mozilla.in 2005-09-21 12:48:39.000000000 +0200
@@ -119,6 +119,17 @@
fi
fi

+#
+## Make sure that we set the plugin path for backwards compatibility
+##
+if [ "$MOZ_PLUGIN_PATH" ]
+then
+ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:/usr/lib/mozilla/plugins
+else
+ MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
+fi
+export MOZ_PLUGIN_PATH
+
script_args=""
moreargs=""
debugging=0
Here is the .mozconfig:
mk_add_options MOZ_CO_PROJECT=suite
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sm-release
ac_add_options --localstatedir=/var
ac_add_options --sysconfdir=/etc
ac_add_options --prefix=/usr
ac_add_options --host=x86_64-pc-linux-gnu
ac_add_options --enable-application=suite
ac_add_options --with-extensions
#ac_add_options --enable-module=psm
ac_add_options --disable-accessibility
ac_add_options --disable-calendar
ac_add_options --disable-dbus
ac_add_options --disable-debug
ac_add_options --disable-mathml
ac_add_options --disable-gnomeui
ac_add_options --disable-gnomevfs
ac_add_options --disable-jsd
ac_add_options --disable-ldap
ac_add_options --disable-logging
ac_add_options --disable-parental-controls
ac_add_options --disable-shared
ac_add_options --disable-tests
ac_add_options --disable-updater
ac_add_options --disable-xprint
ac_add_options --enable-composer
ac_add_options --enable-cookies
ac_add_options --enable-crypto
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-extensions=cookie,transformiix,wallet,xmlextras,pref,spellcheck,universalchardet,permissions,typeaheadfind
ac_add_options --disable-mailnews
ac_add_options --enable-necko-protocols=all
ac_add_options --enable-plugins
ac_add_options --enable-postscript
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --enable-strip
ac_add_options --enable-svg
ac_add_options --enable-system-hunspell
ac_add_options --enable-xinerama
ac_add_options --with-default-mozilla-five-home=/usr/lib/seamonkey
ac_add_options --with-distribution-id=org.bkhome
ac_add_options --with-pthreads
ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-mng
ac_add_options --without-system-png
ac_add_options --with-system-zlib
ac_add_options --enable-xft
ac_add_options --enable-canvas
ac_add_options --enable-system-cairo
ac_add_options --disable-storage
ac_add_options --disable-places
ac_add_options --with-system-nss
ac_add_options --with-system-nspr

Note, was fixing a lot of errors due to having gcc 9.3.0, until got to one that I didn't understand, then introduced CXXFLAGS=' -fpermissive', which got around the errors, but in the long term do need to be able to compile without that option.

Tonight, I will do another compile, this time disable pango and use the internal cairo, and leave in debugging symbols.

Ah, I am one of those old-timers who still loves small applications. Just love that size reduction 51MB -> 9MB!

If anyone wants to have a go at compiling, I can upload the patched source so-far.

EDIT:
Have started a forum thread:

https://forum.puppylinux.com/viewtopic.php?t=4580      

Tags: easy

BlueGriffon compiled but is broken

November 26, 2021 — BarryK

Oh wow, finally got the WYSIWYG HTML editor BlueGriffon to compile, and run, here it is:

img1

However, it is completely broken, nothing works. Hardly anything anyway.

Here is the home page:

http://bluegriffon.org/

...the fact that it is not a https site is a hint that this might be a neglected project. Github page:

https://github.com/therealglazou/bluegriffon

It was a journey to compile, might as well post my notes here, for future reference. I am running EasyOS version 3.1.11, with glibc 2.33, gcc 9.3.0 and kernel 5.10.81. Firstly, the .mozconfig file:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/opt
mk_add_options MOZ_MAKE_FLAGS="-j2"
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-strip
#ac_add_options --enable-stdcxx-compat
ac_add_options --disable-tests
ac_add_options --disable-crashreporter
#ac_add_options --enable-jemalloc
ac_add_options --disable-webrtc
ac_add_options --disable-dbm
ac_add_options --disable-updater
ac_add_options --disable-sandbox
ac_add_options --enable-application=bluegriffon
#ac_add_options --enable-chrome-format=jar
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --with-system-nss
ac_add_options --with-system-ffi
ac_add_options --enable-system-hunspell
ac_add_options --with-system-nspr
#ac_add_options --disable-webspeech
ac_add_options --disable-synth-speechd
ac_add_options --disable-stylo
#ac_add_options --disable-fmp4
ac_add_options --enable-ffmpeg
ac_add_options --disable-wmf
ac_add_options --disable-jack
#ac_add_options --disable-accessibility
ac_add_options --disable-dbus
ac_add_options --disable-gconf
ac_add_options --disable-necko-wifi
ac_add_options --enable-pulseaudio
ac_add_options --disable-safe-browsing
ac_add_options --enable-system-cairo
ac_add_options --enable-system-pixman
ac_add_options --with-default-mozilla-five-home=/usr/lib/bluegriffon
ac_add_options --with-pthreads
ac_add_options --with-system-bz2
ac_add_options --without-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-zlib
ac_add_options --disable-ldap
ac_add_options --disable-omx-plugin
#ac_add_options --disable-clang-plugin
ac_add_options --prefix=/usr
ac_add_options --host=x86_64-pc-linux-gnu
ac_add_options --disable-parental-controls
ac_add_options --enable-optimize='-O2'
#NOT SUPPORTED ANYMOREac_add_options --disable-skia
ac_add_options --disable-webrender

Here are my notes:

# git clone https://github.com/mozilla/gecko-dev bluegriffon-source
save the tarball for use, coz a huge 4GB+ download...
# dir2tgz bluegriffon-source
# cd bluegriffon-source
# git clone https://github.com/therealglazou/bluegriffon
# git reset --hard `cat bluegriffon/config/gecko_dev_revision.txt`
# patch -p 1 < bluegriffon/config/gecko_dev_content.patch
# patch -p 1 < bluegriffon/config/gecko_dev_idl.patch

install python2 pet.

got a compile failure, manually edited:
bluegriffon-source/tools/profiler/core/platform.h
ref: https://bugzilla.mozilla.org/show_bug.cgi?id=1533969
...need to create a patch (their patch doesn't work). did this:

/*BKstatic inline pid_t gettid()
{
return (pid_t) syscall(SYS_gettid);
}*/
#define gettid() static_cast<pid_t>(syscall(SYS_gettid))

/*BKstatic inline pid_t gettid()
{
return (pid_t) syscall(SYS_thread_selfid);
}*/
#define gettid() static_cast<pid_t>(syscall(SYS_thread_selfid))

NOT DONE THIS, another possibility:
ref: https://www.mail-archive.com/blfs-dev@lists.linuxfromscratch.org/msg09065.html
has this:
sed -i -e "s/static inline pid_t gettid/inline pid_t gettid/"\
tools/profiler/core/platform.h

manually edited: NO
gfx/sfntly/cpp/src/sample/chromium/subsetter_impl.cc
NO: the errors are because icu>61, instead changed to --without-system-icu

# make -f client.mk build
...wants rust

in another terminal:
# curl -4 --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
NOchoose custom install, and type in "1.47.0" for Default toolchain.
NO: got a rust compile error. try this instead:
choose custom install, and type in "1.56.1" for Default toolchain.
nup, get this:
error[E0713]: borrow may still be in use when destructor runs
...this is a warning with rust 1.31.0, error on later versions.
ref: https://github.com/rust-lang/rust/issues/55259
DO THIS:
choose custom install, and type in "1.31.0" for Default toolchain.

installs to /root/.cargo

back in bluegriffon-source:

# export PATH="/root/.cargo/bin:${PATH}"
# export CC=gcc
# export CXX=g++
# export CFLAGS+=' -fno-delete-null-pointer-checks'
# export CXXFLAGS+=' -fno-delete-null-pointer-checks'
NO# export CFLAGS+=" -fno-lifetime-dse -fno-schedule-insns2"
NO# export CXXFLAGS+=" -fno-lifetime-dse -fno-schedule-insns2"

# grep -rl -- '-Werror=format' | xargs sed -i 's/error=format/no-&/'

# make -f client.mk build
...compiling...

bluegriffon-source/opt/dist/system_wrappers/sys/sysctl.h:3:15: fatal error: sys/sysctl.h: No such file or directory
3 | #include_next <sys/sysctl.h>
...this is missing from glibc >=2.32 easyos has 2.33
but there is a /usr/include/linux/sysctl.h
bad hack maybe, have edited line 3 in sysctl.h to "#include_next <linux/sysctl.h>"

off we go, yet again...
# make -f client.mk build

../../build/unix/gold/ld: error: cannot find -lcrmf
this is in the nss package. we are using the system nss
nss was compiled in OE, which did not install libcrmf.a
so I went to the OE build and found it, copied to /usr/lib

# make -f client.mk build
...success!

# make -f client.mk install
...installed to /usr/lib/bluegriffon-3.2
/usr/bin/bluegriffon symlink

# bluegriffon
window pops up:
XML Parsing Error: undefined entity
Location: chrome://bluegriffon/content/xul/bluegriffon.xul
Line Number 586, Column 11: <label value="&pageLocation.label;"/>
----------^

expand omni.ja...
# cd /usr/lib/bluegriffin-3.2
# mv omni.ja omni.zip
# unzip -X -K -o -b omni.zip -d ./

have edited:
/usr/lib/bluegriffon-3.2/chrome/bluegriffon/content/bluegriffon/xul/bluegriffon.xul
comment-out line 586: <!-- <label value="&pageLocation.label;"/> -->
...and have to comment-out more similar lines in that file.

now bluegriffon starts!
...the UI is so very broken!

Adding to the fun and games with different glibc versions, now we have more fun with rust versions. Sigh.

There was a comment in the Puppy Forum that older versions of BlueGriffon were "better". Looks like it has gone downhill after 3.1, released in 2019.

My interest in BlueGriffon is want a small and simple WYSIWYG HTML editor. I could try compiling an older version, but think might be better to tackle an old version of SeaMonkey.   

Tags: easy

Kernel 5.10.81 compiled with improved AMD CPU support

November 24, 2021 — BarryK

I don't have a PC with AMD CPU, so haven't bothered much with configuring the kernel to work with them. However, some guys testing EasyOS are keen on them, so today have given it a closer look.

I was looking at Gentoo documentation:

https://wiki.gentoo.org/wiki/Ryzen

https://wiki.gentoo.org/wiki/AMD_microcode

I have never bothered about microcode either, and the kernel has had CONFIG_MICROCODE disabled. But from a bit of reading, perhaps I should support it. So, have now turned it on, for AMD CPUs only.

Have compiled the 5.10.81 kernel, with these changes, relative to 5.10.78 (as used in EasyOS 3.1.11):

Processor type and features
[*] Support x2apic CONFIG_X86_X2APIC
[*] AMD ACPI2Platform devices support CONFIG_X86_AMD_PLATFORM_DEVICE
Performance monitoring
<*> AMD Processor Power Reporting Mechanism CONFIG_PERF_EVENTS_AMD_POWER
[*] CPU microcode loading support CONFIG_MICROCODE
[ ] Intel microcode loading support
[*] AMD microcode loading support CONFIG_MICROCODE_AMD

Device Drivers
Generic Driver Options > Firmware loader
(amd-ucode/microcode_amd.bin amd-ucode/microcode_amd_fam15h.bin amd-ucode/microcode_amd_fam16h.bin \
amd-ucode/microcode_amd_fam17h.bin amd-ucode/microcode_amd_fam19h.bin) \
Build named firmware blobs into the kernel CONFIG_EXTRA_FIRMWARE
(/lib/firmware) Firmware blobs root directory CONFIG_EXTRA_FIRMWARE_DIR
IOMMU Hardware Support
[*] AMD IOMMU support CONFIG_AMD_IOMMU
<*> AMD IOMMU Version 2 driver CONFIG_AMD_IOMMU_V2

I got the microcode from here:

https://anduin.linuxfromscratch.org/sources/linux-firmware/amd-ucode/

From reading the Gentoo wiki, it seems that improved support for recent AMD CPUs is in the 5.11 kernel. However, I will stay with the 5.10 series for awhile longer.    

Tags: easy

Firefox cache grows too big

November 22, 2021 — BarryK

In menu "Filesystem -> Easy Version Control", I took a snapshot, and wondered why it was so big. I then chose to rollback to "pristine first bootup" and ticked the checkbox to save browser settings -- that's when I discovered what is wrong -- the firefox cache is 1.1GB and that gets saved.

So, it is not really a "pristine first bootup" if it is keeping the firefox cache.

Need to limit the cache size, found out how here:

https://support.mozilla.org/en-US/questions/1271481

I have put this into the firefox-skeleton PET, file 'prefs.js':

user_pref("browser.startup.homepage", "file:///usr/share/doc/home.htm");
user_pref("browser.startup.homepage_override.mstone", "93.0");
user_pref("browser.tabs.warnOnClose", false);
user_pref("layers.acceleration.disabled", true);
user_pref("startup.homepage_override_url","file:///usr/share/doc/home.htm");
user_pref("startup.homepage_welcome_url","file:///usr/share/doc/home.htm");
user_pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", true);
user_pref("app.update.auto", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false);
user_pref("privacy.sanitize.pending", "[]");
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("app.shield.optoutstudies.enabled", false);
user_pref("widget.non-native-theme.gtk.scrollbar.allow-buttons", true);
user_pref("browser.cache.disk.capacity", 384000);
user_pref("browser.cache.disk.smart_size.enabled", false);

...limiting to 384MB.

Previous posts about firefox-skeleton:

What I need to do next, is fix the rollback code, so it doesn't save the cache. I think the chromium cache also gets big, need to look at that also.

EDIT 2021-11-23:
I have reduced the limit to 64MB.
Rollback to "pristine first bootup", if choose to retain browser settings, history, bookmarks, etc., will delete the cache. This is done in file /usr/local/easy_version/erase-exceptions.
   

Tags: easy

EasyOS Dunfell-series version 3.1.11 released

November 22, 2021 — BarryK

Version 3.1.10 was released on November 14:

https://bkhome.org/news/202111/easyos-version-3110-released.html

Lots of improvements since then, see the release notes for 3.1.11:

http://distro.ibiblio.org/easyos/amd64/releases/dunfell/3.1.11/release-notes.htm

Download English, French and German builds:

http://distro.ibiblio.org/easyos/amd64/releases/dunfell/3.1.11/

Not yet at the NLUUG mirror, should be there soon:

https://ftp.nluug.nl/os/Linux/distr/easyos/amd64/releases/dunfell/

Feedback welcome at the forum:

https://forum.puppylinux.com/viewforum.php?f=63

WoofQ, used to build EasyOS 3.1.11, tarball is 'woof-project-20211122.tar.gz':

http://distro.ibiblio.org/easyos/project/woofq/2021/

Version 3.1.11 can be considered as another release candidate for 3.2.      

Tags: easy

Zoom works in EasyOS

November 22, 2021 — BarryK

Just a quick note, Zoom works in EasyOS 3.1.10, both the standalone app and the Firefox plugin:

https://forum.puppylinux.com/viewtopic.php?p=41964#p41964

For anyone interested in running Zoom, I recommend wait for Easy 3.1.11, which has some fixes. Expect 3.1.11 to be out in a day or two.

Note, I will probably create a Zoom standalone-app SFS, but for now, mikewalsh's zoom-portable is great.     

Tags: easy