site  contact  subhomenews

Run-as-spot script fixed

September 21, 2017 — BarryK

Puppy Forum member belham2 discovered a broken symlink when (try) to run SeaMonkey as user "spot":

I wondered whether this is fixed in woof-CE, and yes it is, as they don't even have that symlink-creation line anymore:

It has been awhile since I looked at that run-as-spot code, had to think how it works. In woof-CE, support/setup-spot gets copied by 3builddistro to /usr/sbin when Puppy is being built. Ditto for woofQ.

I have fixed that symlink in woofQ.

Tags: easy

PupApps, Pup-Sysinfo, YASSM updated

September 21, 2017 — BarryK

I have updated these PETs, for the next build of Easy.

PupApps 3.0 (radky)

Pup-Sysinfo 2.7.3 (radky)

YASSM 4.1 (rcrsn51)

Getting stuck into Easy development again. There is a backlog of bug reports on the Puppy Forum, will be studying those very soon:

Tags: easy

Checks when SFS layers change

September 20, 2017 — BarryK

Puppy Linux does a lot of checking when the SFS layers change, in the init script in the initramfs and after switch_root in /etc/rc.d/rc.update. Easy 0.4 and earlier does no checks, just uses the layers as-is.

The code in Puppy is complex, and I do want some checks in Easy, but simpler. I have created /sbin/fixlayers in the initramfs, that gets called if a change in SFS layers is detected, or a version upgrade. Have tried to keep this code to just the essentials, such as ensuring the Easy boot scripts in /etc/rc.d are visible at the top of the layers.

After switch_root, I have put some checks into /etc/rc.d/rc.sysinit. For example, rerunning depmod and rebuilding the JWM menu.

Puppy does a lot of checking of the JWM PuppyPin and globicons files, however, I have left that out. It will be up to any SFS files inserted in a layer, not to mess up those files. Though, that one might need more thought.

Script /sbin/fixlayers now merges PuppyPin and globicons from the SFS layers, producing a sane desktop that keeps user customization.

Tags: easy

Managing changed SFS layers at bootup

September 19, 2017 — BarryK

Easy OS, like Puppy, runs on a layered filesystem, with one or more read-only (ro) SFS files in lower layers, and a read-write (rw) layer at the top.

The interactions of the files and folders in these layers can cause trouble. Puppy has some quite complicated code, in the init script in the initrd, and in /etc/rc.d/rc.update, to examine the layers and make sure that nothing "important" underneath is blocked by a higher file/folder or whiteout file.

The decisions made are not perfect though.

Easy 0.4 and earlier do no processing of the layers, they are just layered as-is. That is not satisfactory either.

The layers can change either by adding or removing a SFS file, or at a version upgrade. The rw layer is the .session folder, below will be session.sfs, then maybe extra SFS files such as devx-*.sfs, then q.sfs at the bottom.

File session.sfs is the accumulated sessions from previous versions, compressed and frozen as read-only.

I thought of handling the whiteout files in a radically different way: just delete all of them. That is, delete all of them in the .session folder.

At a version upgrade, this ensures that no whiteout files get frozen into session.sfs, and in a changed SFS layer arrangement, nothing from below will be hidden or renamed.

At first, this might seem too radical. However, all changes in the rw layer will not be undone. For example, you install a DEB package, then later uninstall it. This happens entirely in the rw layer.

Say that you install a package into /opt in the rw layer, then later delete /opt. There will then be a whiteout file hiding any /opt folders in lower layers. By removing the whiteout, the lower /opt will spring back into existence on top. Which is good.

Deleting all the whiteout files in the .session folder is now done in the init script in the initrd, a one-liner:

find /mnt/${WKG_DEV}/${WKG_DIR}.session -type f -name '.wh.*' -delete 2>/dev/null

But, this is only done when the layers change or at a version upgrade.

I know that this seems one step too far, and feedback from other pup developers is welcome. The Easy OS forum thread is here:

Actually, I think this will work OK because only the top layer is rw. In Puppy, where the next-down may also be rw, it gets more complicated.

Following the reasoning presented above, take one more step: why not do away with whiteout files entirely?

Later in the init script, the layered filesystem is setup, using aufs, then there is a switch_root to the working partition, then /etc/rc.d/rc.sysinit will run, which will call rc.update.

Next, I have to put some code into rc.update, to process the changed layers some more. For example, the JWM menu might need to be reconstructed.

Tags: easy

Linux kernel 4.13.2 compiled

September 18, 2017 — BarryK

Yay, back onto developing Easy OS!

I have compiled the 4.13.2 kernel. Easy 0.4 has 4.11.12. Essentially the same configuration, a few more drivers enabled. Also, these changes:

This was turned off in 4.11.12, as it caused very slow bootup on the Alpha Litebook
wasn't sure about this. It defaults to "yes" so left it at that
A driver, and I chose "yes", builtin, rather than as a module

Regarding CONFIG_PATA_LEGACY, after I release Easy 0.5, if you experience slow bootup on your machine, let me know.

The kernel source, patches and build scripts, are here:

The PET is here (42.4MB):

The kernel source is available as a SFS file (152.9MB): is big because the SFS is only gzipped.

I started thinking about updating the kernel, as I was considering trying the overlay filesystem again, instead of aufs. However, after reading recent posts in various mail-lists, decided that overlay is still not working properly.  Overlay has some config options, CONFIG_OVERLAY_FS_REDIRECT_DIR and CONFIG_OVERLAY_FS_INDEX, that promise to fix some things, however, break others. Whereas aufs, on the otherhand, "just works".

So, this 4.13.2 build is staying with aufs.

Tags: easy

Easy docs moved to

September 18, 2017 — BarryK

I had registered a new domain,, and put Easy OS documentation on it, and also started a blog.

However, reconsidered, and consolidated the blog into just one, where you are reading now. That was a couple of weeks ago. Now, have done the same thing to the Easy docs. They are now here:

I decided that it is simpler to keep everything under the one umbrella domain name. Besides, I don't really see Easy as becoming a mainstream Linux distribution -- but then, you never know, and if that does happen, maybe then Easy can have its own home.

The last few days, I have been refining shellCMS, and now my website is pretty much as I want it. So, the intention now is to move back to developing Easy.

Tags: easy

How Easy works, part 2

September 06, 2017 — BarryK

Part-1 is more for those interested in the underlying details, especially if you have a strong knowledge of shell scripting. Part-1 is here:

Part-2 is more for the user, posted here:

Tags: easy, linux