site  contact  history  index

EasyOS Dunfell version 2.7 released

April 14, 2021 — BarryK

Throughout 2020 and early 2021, the flagship releases of EasyOS were the "Buster series", built with DEB packages from Debian Buster 10.x. There were also releases of the "Dunfell series", compiled from source in a port of OpenEmbedded, that took a back-seat.

Now, EasyOS Dunfell version 2.7 has the driver's seat and is the flagship release. Almost all of the packages are compiled in a port of OpenEmbedded, with the exception of a few large and difficult-to-cross-compile packages, such as LibreOffice and SeaMonkey -- these were compiled in the running EasyOS 2.7 pre-release.

LibreOffice and SeaMonkey are the latest versions, 7.1.2.2 and 2.53.7. Network management has been enhanced with ModemManager, which NetworkManager Applet and ModemManage GUI are frontends for. NetworkManager Applet is an icon in the systray and ModemManager GUI is in the "Network" menu. The Linux kernel is 5.10.26.

There have been some significant bug fixes since the previous release of EasyOS, including faster startup of a Linux distribution desktop in a container (without wallpaper corruption), Osmo stability, and the XorgWizard previously causing X not to start.

EasyOS is released as an image file, that you would normally write to a USB Flash stick, and it will automatically resize to fill the drive at first bootup. Or, it is possible to install directly into a hard drive, without even having booted first from USB stick. There are builds for English, French, German and Norwegian (both nb and nn), which are fully translated ready-to-go.

Please read the Release Notes for more details:

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

Download from here:

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

At the time of writing, not there yet, but expect mirrored here:

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

If you need help with installing:

http://distro.ibiblio.org/easyos/amd64/releases/dunfell/2.7/readme.htm

You are welcome at the EasyOS section hosted on the Puppy Linux Forum:

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

If you are new to EasyOS and want to know about differences from other Linux distributions, read this:

https://easyos.org/about/how-and-why-easyos-is-different.html

Have fun!

Developer notes

For any interested developers, the port of OpenEmbedded is available as a tarball. Currently not as an online repository. The snapshot that was used to compile the packages for EasyOS 2.7:

http://distro.ibiblio.org/easyos/project/oe/dunfell/dunfell-20210414.tar.gz

http://distro.ibiblio.org/easyos/project/oe/dunfell/md5sums.txt

WoofQ is the EasyOS builder system, also available as a tarball:

http://distro.ibiblio.org/easyos/project/woof/woof-project-20210414.tar.gz

http://distro.ibiblio.org/easyos/project/woof/md5sums.txt

Bugs

Only one buglet know so far: Inkscape entry in the "Graphic" section of the menu is missing its icon. That one snuck through.   

Tags: easy

Dependencies to compile modem-manager-gui

April 13, 2021 — BarryK

I posted a couple of days ago, that compiled dependencies for LibreOffice in OpenEmbedded, but compile LO itself in a running EasyOS. I am going to do the same with 'modem-manager-gui', as have found it to be cross-compiler-unfriendly.

Actually, it only seems to be the usage of po4a that is unfriendly, so I could probably hack on it. But decided to take the easy path and compile in a running Easy.

ModemManager GUI is a gtk+3 frontend to 'modemmanager'.

NetworkManager has 'modemanager' as an optional dependency, and Easy has 'networkmanager-applet' in the tray -- so I suppose there is some kind of 3G/4G/LTE modem functionality supported by NetworkManager.

ModemManager GUI is another frontend. I don't know anything about it, except what have read on the project page:

https://sourceforge.net/projects/modem-manager-gui/

...interesting, the possibility of sending SMSs.

The package 'modem-manager-gui' has all required dependencies in Easy, however to compile requires 'po4a', which is a perl script. I have built it in OpenEmbedded, and it required all of these packages:

po4a
liblocale-gettext-perl
libmime-charset-perl
libsombok3
libterm-readkey-perl
libtext-charwidth-perl
libtext-wrapi18n-perl
libunicode-linebreak-perl

...libsombok3 is not perl, it is a shared library.

These will be in the next build of Easy, in the "devx" SFS, and I intend to compile 'modem-manager-gui' in the running Easy.  

Tags: easy

Fix for menu font size in LibreOffice

April 12, 2021 — BarryK

This morning posted how LibreOffice was compiled in EasyOS:

https://bkhome.org/news/202104/how-to-compile-libreoffice-in-easyos.html

...and mentioned that menu font size is a bit small.

Well, that is the case for all gtk+3 applications, compared with gtk+2 apps. The reason is, Easy is released with a theme set for gtk+2 apps, but no theme set for gtk+3 apps. So gtk+3 apps use the default theme built-in to gtk+3.

Currently, the file /root/.config/gtk-3.0/settings.ini has this in it:

[Settings]
gtk-theme-name =
# ref: https://bkhome.org/news/202010/oe-gcc-target-default-commandline-options.html
gtk-primary-button-warps-slider = false

...no theme specified. The default gtk+2 theme has font "DejaVu Sans 12", so have appended this to settings.ini:

gtk-font-name = DejaVu Sans 12

That does the trick. Ideally though, should have a theme that matches the one chosen for gtk+2.   

Tags: easy

How to compile LibreOffice in EasyOS

April 12, 2021 — BarryK

Yesterday I posted about dependencies of LibreOffice compiled in OpenEmbedded:

https://bkhome.org/news/202104/dependencies-for-libreoffice-compiled-in-oe.html

last night, compiled LO in latest running EasyOS. LO automatically downloads any extra source packages that it needs. This is what it downloaded:

0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
box2d-2.3.1.tar.gz
dtoa-20180411.tgz
f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
Firebird-3.0.0.32483-0.tar.bz2
libepubgen-0.1.1.tar.xz
libnumbertext-1.0.7.tar.xz
liborcus-0.16.1.tar.bz2
libqxp-0.0.2.tar.xz
libstaroffice-0.0.7.tar.xz
libzmf-0.0.2.tar.xz
mariadb-connector-c-3.1.8-src.tar.gz
pdfium-4306.tar.bz2
QR-Code-generator-1.4.0.tar.gz
skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz

...don't know why it downloaded 'hyphen', as have that as a system library.

I had manually downloaded this beforehand:

libreoffice-translations-7.1.2.2.tar.xz

Woof-CE has "petbuilds", scripts for compiling source packages and creating PETs. I would like to introduce this into woofQ, so thinking about automating the build of LO. This is how I did it, not yet a complete PET-build, needs more fleshing out, but this is a start, just notes documenting that I did:

# mkdir -p tarballs
# tar -xf libreoffice-7.1.2.2.tar.xz --no-overwrite-dir
# cd libreoffice-7.1.2.2
# ln -s ../../tarballs external/tarballs
copy the translation tarball into external/tarballs

# export LO_PREFIX=/usr

fixes (from linuxfromscratch):

# sed -e "/gzip -f/d" -e "s|.1.gz|.1|g" -i bin/distro-install-desktop-integration
# sed -e "/distro-install-file-lists/d" -i Makefile.in

easyos 2.6.3 has these compiled in oe:
hyphen libabw libcdr libcmis libe-book libetonyek libexttextcat libfreehand libgltf
liblangtag libmspub libmwaw libodfgen libpagemaker librevenge libvisio libwpd libwpg
libwps lpsolve mdds-1.2 mdds-1.5 mythes rasqal redland vigra

# ./configure --without-fonts --without-krb5 --build=x86_64-pc-linux-gnu --prefix=/usr \
--exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec \
--datadir=/usr/share --sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var \
--libdir=/usr/lib --includedir=/usr/include --oldincludedir=/usr/include \
--infodir=/usr/share/info --mandir=/usr/share/man --without-doxygen \
--enable-release-build --with-parallelism=4 --without-java --disable-coinmp \
--with-tls=nss --without-galleries --disable-gstreamer-1-0 --disable-avahi \
--disable-odk --disable-postgresql-sdbc --with-system-libs --without-system-clucene \
--without-system-xmlsec --without-system-libepubgen --without-system-libqxp \
--without-system-libzmf --without-system-libstaroffice --without-system-odbc \
--without-system-orcus --without-system-libnumbertext --without-system-mariadb \
--without-system-firebird --without-system-qrcodegen --without-system-altlinuxhyph \
--with-lang="en-GB fr de nn nb" --with-locales="en fr de nn nb" --with-theme=colibre \
--disable-scripting-javascript --disable-scripting-beanshell --disable-lotuswordpro \
--disable-ccache --enable-cups --disable-vlc --disable-qt5 --disable-sdremote \
--disable-dbus --enable-python=no --disable-debug --disable-evolution2 \
--enable-pdfimport --enable-lpsolve --disable-report-builder --enable-firebird-sdbc \
--with-system-neon --without-system-box2d

edit Makefile:
# sed -i -e 's%^check-if-root:%check-if-root:\n\ncheck-if-rootXXX:%' Makefile

# make build-nocheck

At failure, just did this together, and it then continued to completion:

# mkdir icon-themes/export
# touch workdir/CustomTarget/postprocess/images/colibre_links.txt.tmp
# touch workdir/CustomTarget/postprocess/images/export_links.txt.tmp
# make build-nocheck

this does not work...
# make distro-pack-install

however, folder 'instdir' has everything we need, for target /usr/lib/libreoffice
for target /usr/share, look in folder 'sysui'
need to strip binaries in 'program' folder, used --strip-unneeded
usr/lib/libreoffice/share/config/images_colibre.zip looks ok, deleted images_export.zip

Automate the install:

D="../libreoffice-7.1.2.2-dunfell64"
[ -d $D ] && rm -rf ./${D}
mkdir $D

mkdir -p ${D}/usr/lib
cp -a instdir ${D}/usr/lib/libreoffice
rm -rf ${D}/usr/lib/libreoffice/sdk
rm -f ${D}/usr/lib/libreoffice/share/config/images_export.zip

mkdir -p ${D}/usr/share
cp -a sysui/desktop/appstream-appdata ${D}/usr/share/appdata
mkdir -p ${D}/usr/share/icons/hicolor
cp -a sysui/desktop/icons/hicolor/48x48 ${D}/usr/share/icons/hicolor/
cp -a sysui/desktop/menus ${D}/usr/share/applications
mkdir -p ${D}/usr/share/fonts/TTF
ln -s ../../../lib/libreoffice/share/fonts/truetype/opens___.ttf ${D}/usr/share/fonts/TTF/opens___.ttf

N="../libreoffice_NLS-7.1.2.2-dunfell64"
[ -d $N ] && rm -rf ./${N}
mkdir -p ${N}/usr/lib/libreoffice/program/resource
mkdir ${N}/usr/lib/libreoffice/share
mv -f ${D}/usr/lib/libreoffice/program/resource/* ${N}/usr/lib/libreoffice/program/resource/
mv -f ${N}/usr/lib/libreoffice/program/resource/en* ${D}/usr/lib/libreoffice/program/resource/
mv -f ${N}/usr/lib/libreoffice/program/resource/common ${D}/usr/lib/libreoffice/program/resource/
ln -snf ../../../../share/fonts/truetype/opens___.ttf ${D}/usr/lib/libreoffice/program/resource/common/fonts/opens___.ttf
mkdir ${N}/usr/lib/libreoffice/share/autocorr
mkdir ${N}/usr/lib/libreoffice/share/autotext
mkdir -p ${N}/usr/lib/libreoffice/share/registry/res
mv -f ${D}/usr/lib/libreoffice/share/autocorr/* ${N}/usr/lib/libreoffice/share/autocorr/
mv -f ${N}/usr/lib/libreoffice/share/autocorr/*_en* ${D}/usr/lib/libreoffice/share/autocorr/
mv -f ${D}/usr/lib/libreoffice/share/autotext/* ${N}/usr/lib/libreoffice/share/autotext/
mv -f ${N}/usr/lib/libreoffice/share/autotext/en* ${D}/usr/lib/libreoffice/share/autotext/
mv -f ${D}/usr/lib/libreoffice/share/registry/res/* ${N}/usr/lib/libreoffice/share/registry/res/
mv -f ${N}/usr/lib/libreoffice/share/registry/res/*_en* ${D}/usr/lib/libreoffice/share/registry/res/

sync
strip --strip-unneeded ${D}/usr/lib/libreoffice/program/*.so
strip --strip-unneeded ${D}/usr/lib/libreoffice/program/*.so.*
for A in gengal.bin oosplash opencltest regmerge regview soffice.bin ui-previewer uno.bin unopkg.bin uri-encode xpdfimport
do
strip --strip-unneeded ${D}/usr/lib/libreoffice/program/${A}
done
Note, when ran it, menu fonts are a bit small. Will need to find how to preset that a bit bigger.

Compile fails at building the themes. This is not new, have had this always, when compile on EasyOS or Puppy. Never figured out why, just did that hack, but then "make DESTDIR=... distro-pack-install" fails. Actually, back in Pyro-series, did another hack that fixed the install, but this time just did a manual install, as shown above, which works fine.

The 'configure' options are for latest EasyOS Dunfell, and will have to be changed for a different pup. It has "--with-system-all", so tries to find all libraries in the host system. Configure will stop with error on first not found, then you have to append "--without-system-<pkg>". This testing of system library availability could be done automatically.

Takes awhile to compile. The PET is big, 105MB, gzipped. So many import/export filters that I would rather not have, but there doesn't seem to be any way to disable them when configuring.  

Tags: easy

Dependencies for LibreOffice compiled in OE

April 11, 2021 — BarryK

I posted yesterday about compiling Inkscape in OpenEmbedded/Yocto:

https://bkhome.org/news/202104/inkscape-compiled-in-openembedded.html

In the current release of EasyOS, LibreOffice (LO) was compiled in a running EasyOS, not in OE. During the build, LO automatically downloads any extra source packages that it needs, that are not available in the system.

What I have done is compile many of those dependencies in OE, so they will be available as shared libraries for LO to link against, but other applications will also be able to use them.

For example, LO uses 'libcdr', a CorelDraw import filter. By having this as a shared system library, Inkscape can optionally link against it, and also have CorelDraw import capability. Hmmm, does anyone still use CorelDraw?

These are the new packages compiled in OE:

hyphen libabw libcdr libcmis libe-book libetonyek libexttextcat libfreehand libgltf liblangtag libmspub libmwaw libodfgen libpagemaker librevenge libvisio libwpd libwpg libwps lpsolve mdds-1.2 mdds-1.5 mythes rasqal redland vigra

Hmmm again, 'libwpg' is for handling WordPerfect graphics, 'libwpd' for WordPerfect documents. WordPerfect is ancient, I would prefer to save the space and not have import of WP documents and graphics, however, LO build does not seem to offer disabling it.

I was very easily able to compile those packages, by adding the 'meta-office' layer. This is maintained by 'schnitzeltony' and also includes recipes for building libreoffice and abiword:

https://layers.openembedded.org/layerindex/branch/master/layer/meta-office/

...however, I get errors trying to compile libreoffice. Could probably be fixed, as I did with the 'pyro' series, but decided will compile libreoffice in the running EasyOS. Note, I checked out the 'dunfell' branch of 'meta-office', and it will be in my next uploaded tarball.

Have just done a complete rebuild in OE, it took about 9 hours. Next, will import the packages into woofQ and build the next release of EasyOS.  

Tags: easy

Inkscape compiled in OpenEmbedded

April 10, 2021 — BarryK

As already posted, I have recompiled everything in OE:

https://bkhome.org/news/202104/dunfell-recompile-commencing-in-openembedded.html

Also added 'pngoverlay-cairo':

https://bkhome.org/news/202104/pngoverlay-cairo-utility-now-in-woofq.html

Cross-compiling can be a challenge with some packages, and some of the big ones, such as SeaMonkey, LibreOffice and Inkscape, I have compiled in a running EasyOS (with the "devx" SFS loaded).

I have previously compiled LibreOffice in OE, see the Pyro series. But it was a lot of work.

Today I have imported Inkscape into OE. Had to import these dependencies into OE:

double-conversion potrace gdl

Then inkscape compiled, no issues. Good, I congratulate the developers on a well-behaved build. It is version 1.0.2.

My latest OE, based on the Dunfell release, is available as a tarball. It is really just the Dunfell release of OE with my "meta-quirky" layer. The tarball has some documentation. Available here:

http://distro.ibiblio.org/easyos/project/oe/dunfell/dunfell-20210410.tar.gz

...there is no git repo, just these tarballs, that are snapshots of my local system. My host OS is EasyOS Dunfell-series 2.6.2 x86_64, with "devx" loaded. You need a partition with at least 350GB free -- my build was done on a new 1TB SATA SSD (connected via USB3), and so far using 326GB. If I was to do another build, for a different target, say i686, then the used storage would jump way up -- so good to have 1TB drive.    

Tags: oe

pngoverlay-cairo utility now in woofQ

April 09, 2021 — BarryK

EasyOS, and older pups, have the 'pngoverlay' utility, which overlays two 48x48 PNG images. We use it to create the "close box" on the partition icons on the desktop.

/usr/sbin/pngoverlay is written in BaCon, and has been very troublesome. It requires the executable to be in the same folder as the icons, if build it in OE, a cross-compile environment, it compiles but segfaults when try to use it. It changes the "PWD" variable, that I commonly use in scripts -- that one took me by surprise!

We also have /usr/sbin/pngoverlay.sh, that uses 'netpbm' utilities. It was broken but I fixed it in 2020.

Mick (01micko on the forum) has written two replacements in C, 'pngoverlay-gtk' and 'pngoverlay-cairo'. I am now retiring the BaCon 'pngoverlay' and using Mick's 'pngoverlay-cairo'. See info here:

https://github.com/puppylinux-woof-CE/woof-CE/issues/1470

As posted this morning, have recompiled everything in OE. Will add source package 'pngoverlay-cairo-20190623.tar.gz' to the build. The source package will be hosted on ibiblio.org soon.

I have modified these scripts in woofQ to recognize 'pngoverlay-cairo' and use it if exists. Just in case, the fallback will be to use 'pngoverlay' if doesn't exist:

rootfs-skeleton/usr/local/easy_containers/easy-containers
rootfs-skeleton/usr/sbin/icon_switcher_cli
rootfs-skeleton/usr/sbin/icon_switcher
rootfs-skeleton/usr/local/sfsget/dir2sfs
3buildeasydistro

Note, the BaCon 'pngoverlay' is in the 'pup-tools' package, will pull it out.   

Tags: easy

Dunfell recompile commencing in OpenEmbedded

April 09, 2021 — BarryK

Gwhere is a "removable media catalogue manager", quite interesting, but I don't know if anyone uses it. It has been in Puppy since the early days, and is very old and shaky code. We have patched it and patched it, but yesterday I noticed that 'wdlkmpx' has done a lot of work on it:

https://github.com/wdlkmpx/gwhere

So decided to drop my badly-hacked source. Now have the latest source from wdlkmpx's github repo in OpenEmbedded.

There is another chap who is an audiophile and wants to use the 'jack' server in EasyOS. So I have added the jack package to the build-list, and enabled support for jack in these packages:

ffmpeg mpv xine-lib mhwaveedit audacious

From a bit of reading, it seems that ideally the kernel needs to have some real-time features enabled for jack to work well.

As far as I know, having support for jack in those apps doesn't mean we have to use it. It is an optional server.

Oh, I was going to type "tonight will commence a complete rebuild in OE", but I see it is already after midnight. OK, so commencing today. It takes about 9 hours.

Note, the latest OE tarball will be here, will upload it soon:

http://distro.ibiblio.org/easyos/project/oe/dunfell/ 

One more thing: Have also added 'modemmanager' package to the build-list, and added it as a dependency to 'networkmanager' and 'network-manager-applet' packages.

There has been some discussion recently about "modem thingys" that might require 'modemmanager'. I don't know, but anyway, it will be available for anyone who might want it. has it's own GUI even, that will be in the "Network" menu.

EDIT 2021-04-09:
Also compiling Osmo personal information manager with support for libnotify. Now it will be able to put up notifications, making it a much more complete PIM.
   

Tags: easy