site  contact  subhomenews

Fixed dependency order when uninstalling packages

September 02, 2019 — BarryK

In PETget package manager, sometimes just called the "PPM", I had introduced dependency checking when uninstalling user-installed packages. Wow, that was back in 2013, for Quirky Linux -- and there has been a bug since then.

The bug was that the checking logic was reversed. For example, I have installed 'blockout2', which has dependencies 'libmikmod3' and 'libsdl-mixer1.2'. Before I fixed it, if I tried to uninstall 'blockout2', the PPM refused, saying that there are installed packages that require it. On the otherhand, if I clicked to uninstall 'libmikmod3', it succeeded.

That bug had been written down a few time on various to-do lists, but I never got around to it. Today I decided that 6 years is long enough for that bug to exist, time for it's demise. Now fixed. 

One nice feature, that was introduced in 2013, is if I remove 'blockout2', the PPM will inform me that 'libmikmod3' and 'libsdl-mixer1.2' are not required by any other packages and can be removed if I wish.  That is working OK. 

Tags: easy

Disallow copy session to RAM at first bootup

September 01, 2019 — BarryK

I received an email from a chap, who, I think, chose the boot menu option "Copy session to RAM & disable drives" at the very first bootup. The problem with this is that there is not yet a session to be copied to RAM. There has to be one normal bootup first.

I have put in a test in the initrd, that detects this situation and puts up a message then changes to a normal bootup. 

Tags: easy

No Internet in container bug fixed

September 01, 2019 — BarryK

I received feedback that when click on the "www" SeaMonkey-in-container icon, a message appears "No Internet in container" and SeaMonkey startup is aborted.

This check was introduced as SM was found to be very slow to start and unstable if started in a container without Internet access. The conjecture was that SM does some kind of network check at startup, and being inside a container must be an odd situation that confuses SM.

In the "www" container, /usr/bin/seamonkey is a script, that calls /usr/local/easy_containers/internet-container-abort. The latter calls 'getlocalip' to check for network connectivity.

I fixed the script. What I found is that 'getlocalip' is being called too soon. It takes awhile for the dhcp client to obtain an address inside the container, 5 seconds on my PC. So I put in a loop, timing out at 9 seconds. 

Yay, another one bites the dust! 

Tags: easy

Fix for hanging at bootup

September 01, 2019 — BarryK

A couple of the guys testing Easy 1.2 and 2.1 have reported that bootup hangs at the message "Making the filesystem usable...". I have also got that a few times in the past.

I think that I have figured out where it is hanging. Not quite sure why, but think it is in a while-loop that never exits, while waiting for usb-storage devices to become available, in /etc/rc.d/rc.sysinit. Actually, don't think that we need that waiting loop, so have removed it. The problem should be fixed. That wait was really a leftover from the Quirky days, but the initrd of EasyOS provides the required wait. 

Tags: easy

Easy Containers GUI improved

August 31, 2019 — BarryK

There are improvements to the Easy Containers GUI. This is launched via the "Filesystem" category in the menu. Here is the latest main window:


There are two main improvements:

1. Security levels
The idea is to choose a broad criteria to preselect the options in the Expert tab. Given that the options in the Expert tab might be confusing without studying them carefully, this simple seven-level system makes it easier.

2. GUI to manage security options for existing containers
Previously, the only way to change the security options for an existing container was to edit it's 'configuration' file. Now, you choose a container from the drop-down list in the "Manage" frame, and the "Security options" frame gets loaded. You can make changes if you wish, then click "Update & exit" button.

/usr/local/easy_containers/templates has 'configuration' files for some apps. This can be expanded to have configurations that have been tested to work.

Attention has been given to installing an SFS or app where absolute minimal security is required, The 'devx' SFS for example, we could install it to a container, and want all the power, just want to install so that it doesn't affect the main desktop. 

Tags: easy

PETget package database update fixed

August 30, 2019 — BarryK

Just a quick report on a fixed bug. The PETget package manager has a button to update the package database, in the Configuration window. In Buster 2.1, it hangs when almost completed. You have to type CTRL-C to terminate.

There is no need to perform an update anyway, the database in 2.1 is the latest.

I have fixed it, which will be in the next release. 

Tags: easy

Tweaks to the folder hierarchy

August 29, 2019 — BarryK

EasyOS does not adhere exactly to the Linux directory hierarchy. For example, at the top-level there is /audit, which has the audit-trail for the PETget package manager.

One problem is the path to a shared folder, for apps running in containers to be able to pass files to the main desktop. It was a bit confusing, '/mnt/wkg/home/shared' on the main desktop, and '/shared-folder' inside the container.

Previously, the '/home' folder on the main desktop has sub-folders 'zeus' and 'rover'. These are user accounts that I have experimented with. I have renamed '/home' to '/clients', so that 'zeus' and 'rover' are now inside '/clients'. This is of course very non-standard, but I want to free-up '/home' for another use.

In EasyOS, we have a different meaning for the "home" folder. In the working partition, seen mounted at /mnt/wkg/home, has the user's folders for open|save|download -- just click on the "file" icon on top-left of screen to see the contents. All apps are intended to have this as their default open|save|download path.

In my EasyOS that I am running right now, when I click the "file" icon, it opens at '/mnt/sda10/home'. sda10 is my working partition, and '/mnt/wkg' is a symlink to the working-partition. This is symlink set at every bootup, So even if the working-partition name chages, as it may do if booting off USB, '/mnt/wkg/home' will always be correct. Anyway, that is a digression.

The important change that I have done now is make '/home' into a symlink to '/mnt/wkg/home'.

Getting back to the problem with paths to shared folders for container to main desktop, it is now '/home/shared' both on the main desktop and inside the container. Much simpler.

In future, I will endeavour to get all apps to use '/home' as their default open|save|download path. So again, it will be much simpler. 

Tags: easy

bitflip toggles all bits in a pipe

August 28, 2019 — BarryK

I posted yesterday about an enhancement to EasyDD, verification of write to Flash drive, by writing the "reverse" of the image file, verify, then write the normal image file and verify:

A very interesting part of the exercise was 'bitflip'. This reads from stdin, writes to stdout, and reports total number of bytes written to stderr on completion. See the link, to acknowledge "goldilocks", the chap who wrote it. Here is the code:

// ref:
// pipe in and pipe out. flips every bit.

#include <stdio.h>
#include <unistd.h>
#include <inttypes.h>

#define BUFSZ 4096

int main (void) {
unsigned char buffer[BUFSZ];
int i, check;
uint64_t total = 0;

while ((check = read(0, buffer, BUFSZ)) > 0) {
for (i = 0; i < check; i++) buffer[i] = ~buffer[i];
write(1, buffer, check);
total += check;

fprintf(stderr, "bitflip processed %lu bytes.\n", total);
return 0;

Simple to compile:

# gcc -o bitflip bitflip.c

The source is in pup-tools-20190828.tar.gz:

Here is the PET package, actually compiled in Pyro, works fine in Buster: 

Tags: easy