site  contact  subhomenews

Continue explore integrate APT in Scarthgap

October 26, 2024 — BarryK

Previous related post yesterday:

Some more work; including a wrapper around 'dpkg'. This is 'dpkg-wrap':

https://github.com/bkauler/woofq/blob/main/easyos/easy-code/rootfs-skeleton/usr/bin/dpkg-wrap

...the original 'dpkg' gets renamed to 'dpkg.bin' and 'dpkg-wrap' to 'dpkg'.

I built Scarthgap and attempted to use 'apt' in a terminal. Hmmm, showing just one of the problems:

# apt install dolphin
Reading package lists... Done
Building dependency tree... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
libkf5configwidgets-data : Depends: perl:any
E: Unable to correct problems, you have held broken packages.

Package 'libf5configwidgets-data' has only one dependency, 'perl', and any version of perl. Alright, take a look at perl:

# apt install perl
Reading package lists... Done
Building dependency tree... Done
perl is already the newest version (5.38.2).
0 upgraded, 0 newly installed, 0 to remove and 1149 not upgraded.

Yes, perl is installed, and apt also thinks so. Yet, if I run "apt install libf5configwidgets-data", it gives the same error message about perl being an unmet dependency.

About a week ago, I stress-tested XBPS, the Void package manager, and found it to be inadequate:

Looks like I am heading in the same direction with APT. Similar situation; a bit of an unusual situation, and the package manager falls apart.

Yeah, I can't be bothered. Not going to bother trying to integrate APT into EasyOS Scarthgap. Got much more productive things to do.    

Tags: easy

Infrastructure support apt package manager in Scarthgap

October 24, 2024 — BarryK

EasyOS Scarthgap-series is built with packages compiled from source in OpenEmbedded (OE), a repository of about 1,800 packages. Quite small, but Easy also supports installing Flatpaks and AppImages. There are actually four package managers, see here:

https://easyos.org/user/package-manager-concepts.html

Even so, users are requesting access to more packages. A couple of users have been installing Debian DEB packages and finding that they work, though it is a bit haphazard finding the dependencies.

I'm having a go at formalizing this, putting in infrastructure to support installing Devuan Daedalus .deb packages.

It is intended that Easy Scarthgap 6.4 will have the 'apt' and 'dpkg' package management packages installed.

WoofQ is the EasyOS build system, and what it will now do is examine all of the builtin packages, in easy.sfs, those compiled in OpenEmbedded, and inform dpkg and apt of their existence. So, when a package and its dependencies are installed by apt, the already-existing dependencies will be recognized.

This is quite a difficult operation to achieve. The Debian developers have the habit of changing the names of packages, and they split packages into smaller ones, often several smaller ones. So, if for example there is the 'djvulibre' OE package; Debian provides that as these split-up packages:

djview djview3 djvulibre-bin djvulibre-desktop djvuserve libdjvulibre-dev libdjvulibre-text libdjvulibre21

So, dpkg and apt have to be told that all of those packages are installed, and the version.

I have tackled this. There is a new script /usr/local/petget/debget/deb-names.sh that matches the OE package name to the Debian packages:

https://github.com/bkauler/woofq/blob/main/easyos/easy-code/rootfs-skeleton/usr/local/petget/debget/deb-names.sh

There is another script that registers these packages with dpkg, informing that they are already installed. It does this by creating empty .deb packages and installing them.

Note that there is a Debian package named 'equivs' that does this operation of installing dummy .deb packages; however, it has too many dependencies and is cumbersome. It is easy to create and install empty .deb packages from basic principles.

Package version is tricky. For example, there is the 'acl' OE package, but in the Devuan package database there is 'acl' and 'acl2'. The correct Devuan package has to be chosen that matches the version number of the OE package.

This is a very non-trivial exercise, but is working so far. The script that creates these dummy .deb packages and installs them is /usr/local/petget/debget/reg-oe2deb.sh:

https://github.com/bkauler/woofq/blob/main/easyos/easy-code/rootfs-skeleton/usr/local/petget/debget/reg-oe2deb.sh

Before releasing Scarthgap 6.4, I want to integrate dpkg/apt with PKGget. At least in a basic way, that might need refinement later. So that if install a package and its dependencies using 'apt', they will be seen as installed by PKGget, and PKGget will be able to uninstall them. Will probably just do that much for 6.4. Later, maybe PKGget will be able to install DEBs from the Devuan repository, acting as a frontend to apt.

Must qualify this; it is an experiment, yet to be decided whether it is going to be retained past 6.4.    

Tags: easy

Scarthgap recompile in OpenEmbedded

October 24, 2024 — BarryK

EasyOS Scarthgap-series is built with packages compiled from source, using a fork of OpenEmbedded/Yocto. Scarthgap version 5.0.4 has been released:

https://wiki.yoctoproject.org/wiki/Releases

I have just completed a full recompile, about 1,800 packages. Took a couple of days. Not many version changes since 5.0.3:

apr             1.7.4      1.7.5
chromium-x11 127.0.6533.99 129.0.6668.100
cryptodev-linux 1.13+git 1.14
cups 2.4.9 2.4.10
exiv2 0.28.0 0.28.3
expat 2.6.2 2.6.3
go 1.22.5 1.22.6
go-runtime 1.22.5 1.22.6
libadwaita 1.5.1 1.5.2
libldb 2.8.0 2.8.1
linux-firmware 20240312 20240909
mariadb 10.11.7 10.11.9
mbedtls 3.6.0 3.6.1
mtpaint 3.50.09 3.50.10
openssl 3.2.2 3.2.3
ptest-runner 2.4.4+git 2.4.5+git
python3 3.12.4 3.12.6
python3-django 5.0.4 5.0.9
ruby 3.2.2 3.3.5
samba 4.19.6 4.19.8
vim 9.1.0114 9.1.0698
webkitgtk 2.44.1 2.44.3

Uploading the new binary packages. They all have "-r3" in their name, for example 'zstd-1.5.5-r3-nocona-64.tar.xz'. This will be used to build EasyOS Scarthgap-series version 6.4.   

Tags: easy

EasyOS Daedalus-series 6.3.93 (6.4RC) released

October 21, 2024 — BarryK

Fantastic, we are fixing bugs! See previous announcements:

Download:

https://distro.ibiblio.org/easyos/amd64/releases/daedalus/2024/6.3.93/

Feedback welcome:

https://forum.puppylinux.com/viewtopic.php?p=133746#p133746

I'm very grateful to you guys for testing and finding bugs. Are we there yet? Maybe 6.4 is almost ready to go.   

Tags: easy

Mime handling fix for KDE apps

October 20, 2024 — BarryK

This fix is going to apply to more than KDE apps; any app that reads /usr/share/applications/mimeapps.list to determine file associations. For example, a .doc file should be opened in LibreOffice.

This issue came up in discussion of Dolphin file manager on the forum:

https://forum.puppylinux.com/viewtopic.php?p=133545#p133545

I have focussed on file associations for ROX-Filer, which are generated by /usr/bin/build-rox-sendto. This script is run in woofQ when easy.sfs is created, and also when any app that has a .desktop file is installed or removed, or any sfs installed or removed. It creates the associations in /etc/xdg/rox.sourceforge.net/OpenWith -- if you look there, be warned, they are all hidden folders.

SeaMonkey and Firefox, and some other apps, look at /etc/mime.types for file associations, but my understanding is that this is an older mechanism not read by most modern apps.

I discovered that Dolphin, a KDE app, stores file associations in ~/.config/mimeapps.list

A bit of online reading, found the system-wide location, for all users, is /usr/share/applications/mimeapps.list

build-rox-sendto now also generates /usr/share/applications/mimeapps.list, and it works great. Here right-clicked on a .svg image file in Dolphin:

img1

...it has chosen mtPaint as the default, that will run if left-click on the .svg file. To change the default, you would have to edit the ~/.config/mimeapps.list file. I presume just copy the one you want as default from /usr/share/applications/mimeapps.list, under the "[Default Applications]" heading. It seems that Dolphin can't do this for you.

Here is the change to /usr/bin/build-rox-sendto:

https://github.com/bkauler/woofq/commit/cba281b0cb79720ff8bb47c9ad588bdeaff39cef

This is a great improvement for running many different apps in Easy.   

Tags: easy

New desktop icon themes

October 20, 2024 — BarryK

Forum member nilsonmorales has created two new desktop icon themes for EasyOS:

"pop_blue"
https://forum.puppylinux.com/viewtopic.php?p=131908#p131908

"paperforeasyos"
https://forum.puppylinux.com/viewtopic.php?p=132084#p132084

I have made these into PETs and uploaded:

http://distro.ibiblio.org/easyos/noarch/packages/pet/pet_packages-noarch/

You can download them directly, or via PKGget (after updating the database).

Thanks for the contributions!   

Tags: easy

EasyOS Daedalus-series version 6.3.92 (6.4RC)

October 19, 2024 — BarryK

Version 6.3.90 ws released a couple of days ago:

Thanks to the guys who have tested it, lots of bugs identified and fixed.

There was a 6.3.91 release with many fixes and new SolveSpace and Audacious apps builtin. Also some infrastructure for KDE apps. 6.3.92 has more fixes, especially the PKGget package database can now be updated.

PKGget calls /usr/local/petget/0setup to perform a database update, which calls /usr/local/petget/debdb2pupdb, which was failing.

There is a long history here. debdb2pupdb was written in the BaCon language, and that is the one in Daedalus 6.3.91 and earlier. I'm not sure if I recall rightly, but I think that in woof-CE Dima (dimkr) wrote in C. Mid-2022 I was learning the Nim language, and as a learning exercise rewrote debdb2pupdb in Nim. It is here, in the woofQ project:

https://github.com/bkauler/woofq/blob/main/easyos/source/nim/debdb2pupdb.nim

I don't know why, but with EasyOS I stayed with the BaCon version. Which works fine in Scarthgap, but for some unknown reason is broken in Daedalus. I could probably figure out why, but then remembered the Nim version and gave it a go -- it works.

So, 0setup script has now been modified to call debdb2pupdb-nim if it exists.

In the forum, I posted about two outstanding problems:

https://forum.puppylinux.com/viewtopic.php?p=133485#p133485

The aplay failure is still not fixed. It is so weird, as did fix it, then it became broken again. You can see the problem for yourself:

# aplay /usr/share/audio/2barks.au

The 'pcm_direct.c' file in the source code calls the glibc 'getgrnam_r' function, and it seems that the "audio: ..." line in /etc/group is too long. I made it shorter and aplay worked. Thinking, good, now fixed, built 6.3.92, but get the same failure, even though the "audio:" line is shorter. Which I cannot understand. No problem in Scarthgap.

Anyway, download from here:

https://distro.ibiblio.org/easyos/amd64/releases/daedalus/2024/6.3.92/

...the update from 6.3.91 is only 2.3MB. Testers welcome!

Here are some old blog posts in 2022 about debdb2pupdb written in Nim:

https://bkhome.org/news/202208/debian-to-puppy-package-db-conversion-in-nim.html

https://bkhome.org/news/202209/nim-168-compiled-in-oe-with-simplified-recipe.html    

Tags: easy

EasyOS Daedalus-series version 6.3.90 (6.4RC)

October 16, 2024 — BarryK

Devuan is a Linux distribution forked from Debian, almost identical except does not use systemd. Debian Bookworm is the current stable release, and Devuan calls it "Daedalus". I posted about building EasyOS with Daedalus packages a couple of days ago:

A bit worried about fracturing my development effort, but decided to go with it. There are now three projects; Easy Scarthgap-series, Quirky Void (QV) and Easy Daedalus-series.

EasyOS version numbering is based on the Easy infrastructure, not what packages are used to build the distribution, so version numbers keep going up, yet changing the packages could result, will result, in new issues.

Download the drive-image file, courtesy of ibiblio:

https://distro.ibiblio.org/easyos/amd64/releases/daedalus/2024/6.3.90/

Thanks to the Netherlands Linux/Unix User Group for mirroring:

https://ftp.nluug.nl/os/Linux/distr/easyos/amd64/releases/daedalus/2024/6.3.90/

And AARNET in Australia (but 6.3.90 not yet there):

https://mirror.aarnet.edu.au/pub/easyos/amd64/releases/

If you are new to EasyOS and need help how to write a drive-image file to a USB Flash drive, read this:

https://easyos.org/install/how-to-write-easyos-to-a-flash-drive.html

Or, you could open up the image file and install direct to the internal drive. See install tutorials here:

https://easyos.org/

...it is very simple if you already have a boot-manager such as GRUB or REFind installed; just need to copy three files to a folder in any ext4 partition, then make an entry in the boot-manager.

Oh yes, the obligatory photo:

img1

After limited testing, looks good, but testers are welcome -- I'm sure you will find issues! Feedback welcome at the forum:

https://forum.puppylinux.com/viewtopic.php?p=133213#p133213

Some usage notes from my limited testing:

I tested samba and it worked, but I left out the 'samba-vfs-module', that I had included in earlier Bookworm testing. I don't know what that package does. Without it, was able to open a folder on another computer over the local network.

The discussion thread on Easy Daedalus started before this release, and I posted about a problem with KDE Dolphin file manager:

https://forum.puppylinux.com/viewtopic.php?p=133193#p133193

...note though, Dolphin works fine OOTB in QV. But then, QV is built from the ground-up using the XBPS package manager.

Devuan uses Debian packages, except where they have had to modify the package not to require systemd. The Devuan package server is deb.devuan.org and in most cases it forwards a package request to one of the Debian mirrors. However, at certain times the forwarding fails -- it seems deb.devuan.org becomes overloaded. PKGget will seem to have frozen; in that case, click the "Abort" button and there will be another window offering to retry. It has always worked on the retry. Anyway, most of the time downloading is OK.

Any more issues, let me know!

Will Daedalus-series be a long-term "stayer"? Don't know, depends on user interest and also my level of interest and available time.    

Tags: easy