site  contact  subhomenews

Decided not to integrate Guix into EasyOS

September 21, 2024 — BarryK

I posted yesterday about Guix package manager:

After a couple of enthusiastic days intensely working on Guix, and planning to integrate it into EasyOS, doubts started to creep in.

In balance, I decided that it doesn't bring enough "to the table" to warrant inclusion. Yes, I want to expand the package repository; however, will focus on improving the existing package managers. For example, can add more Flatpaks to Flapi.

Regarding Flatpaks, I installed ShotCut and OpenShot video editors, just to confirm they work OK. Reason for doing that, is OpenShot installed via Guix, sound didn't work; sound with ShotCut was OK. Midori web browser installed via Guix didn't work.

With Guix, it is advised to run "guix pull" which performs package updates -- unfortunately, this takes a very very long time. Then there's the size of downloads; I used to think Flatpaks were big, but now think they are not so bad. Flatpak downloads are bundles of packages, whereas Guix downloads individual packages; prefer the former.

The "last straw" was when I shutdown and saved the session, shutdown hung. Somehow, $PATH got stuffed up. Yeah, I was experimenting with guix-binary tarball from git master branch, so could not expect high degree of stability. Even so, it has been years since Easy hung at shutdown.

I think Guix will work best in the Guix OS, not as a foreign package manager.

Another thing I didn't like, is although Guix claims to only install to /gnu and /var/guix; in fact, it creates or requires (or requires editing) folders and files in other places. Trying to recall... /etc/guix, /root/.config/guix, /root/.guix-profile, /etc/profile.d/guix, /etc/.bashrc, /etc/init.d/guix-daemon

It's an OK product, just don't think it is a good fit with EasyOS.   

Tags: easy

Guix works with EasyOS

September 20, 2024 — BarryK

This is extremely interesting!

What originally motivated me to consider Guix was a forum post by member Stogie:

https://forum.puppylinux.com/viewtopic.php?p=130981#p130981

...see my reply, that there are ways to install more applications, such as AppImages, Flatpaks and another OS running in a container.

Each of those, though, has issues. It got me wondering about distro-independent package managers. These are package managers that can install in any Linux distribution. They have a large package repository and install packages with all dependencies separate from the host system. Yes, that is similar to AppImages, Flatpaks and another OS in a container.

As far as I can make out though, these package managers do not have paranoid sandboxes like Flatpaks and containers, nor do they duplicate all dependencies for each app as with AppImages. It looks like the possibility of smaller overall size and run nicely on the host system.

I found three different distro-independent package managers. Firstly, Homebrew:

https://github.com/Homebrew/brew

...designed originally for MacOS, now also works in Linux. Secondly, Nix:

https://nixos.org/

And thirdly, Guix:

https://guix.gnu.org/

img1

The website provides an install script, that I had to hack on quite a bit, but got there. Ha ha, the script ended reporting successful install, and I didn't know what to do next. Baby steps seemed to be missing. A search, found lots of tutorials and videos, so was able to take the baby steps and install a package.

The Guix project is hosted here:

https://savannah.gnu.org/projects/guix/

...I went there to see just how active it is; and yeah, very active. Lots of developers; that's good.

Regarding my baby steps after running the install script, I rebooted and then did this; I didn't really know what that does, but some documentation said to do it:

# guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to 59db76c (37,220 new commits)...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git 59db76c
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 0.0%guix substitute: warning: ci.guix.gnu.org: host not found: Servname not supported for ai_socktype
substitute:
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 0.0%guix substitute: warning: bordeaux.guix.gnu.org: host not found: Servname not supported for ai_socktype
substitute:
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 0.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 0.0%
...

Thanks to Giuliano, for his very grass-roots explanation on installing Guix:

https://gist.github.com/giuliano108/49ec5bd0a9339db98535bc793ceb5ab4

...yes, I had to modify /etc/services file. I used his cut-down file, but do need to find what is required to edit the original /etc/services

It took awhile, downloaded lots of packages. Played with it right until 4.30am this morning. Now back at it at 9.00am and checking sizes:

# du -h -s /gnu /var/guix
4.2G /gnu
35M /var/guix

...yeah, big.

What I did in the early hours of this morning, is firstly installed a "Hello World" app:

# guix install hello
...
# hello
Hello, world!

Then got more ambitious:

# guix install shotcut
...
# shotcut

...it works! Well, it started anyway, didn't actually use it.

There are some more setup details for the Guix apps to run nicely in a host OS, that I have yet to do.

Here is a list of online Guix resources:

https://github.com/techenthusiastsorg/awesome-guix

I can see potential here, to add many more packages to EasyOS. Maybe a fifth package manager, complimenting PKGget, SFSget, Flapi and Appi. Or, a completely new approach...

I wonder... over the years, there have been so many exploratory projects on the Puppy Forum, perhaps someone has considered Guix. Yes, Caramel has explored both Nix and Guix:

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

...I would have seen that before, but forgot. Caramel has discovered the fix required for /etc/services

Stay tuned; quite likely there is going to be a very interesting outcome.    

Tags: easy

EasyOS Scarthgap-series version 6.3.1 released

September 18, 2024 — BarryK

The previous release, 6.3, was on September 10:

Release notes for 6.3.1:

https://distro.ibiblio.org/easyos/amd64/releases/scarthgap/2024/6.3.1/release-notes.htm

Download:

https://distro.ibiblio.org/easyos/amd64/releases/scarthgap/2024/6.3.1/

Feedback welcome at the forum:

https://forum.puppylinux.com/viewtopic.php?p=131141#p131141

Have fun!    

Tags: easy

Russian menu translations improved

September 17, 2024 — BarryK

New forum member bulatsib posted improvements for the Russian translations of menu entries:

https://forum.puppylinux.com/viewtopic.php?p=130855#p130855

Myself and forum member Maybe (who has been previously contributing Russian translations) have reviewed the new contribution, and it is very good, now merged into WoofQ.   

Tags: easy

Geany mysterious Chinese behaviour

September 16, 2024 — BarryK

I used MoManager to create Simplified Chinese zh_CN.UTF-8 translations for /usr/bin/quicksetup, using MoManager's automatic translation feature. The result is in Easy 6.3. However, there is something weird with geany text editor...

A quicksetup.pot file is created like this:

# cp /usr/bin/quicksetup quicksetup.sh
# xgettext -o quicksetup.pot --no-wrap quicksetup.sh

The automatic translations are applied to quicksetup.pot and it becomes quicksetup.po and the latter is then opened in geany for review:

img1

The translations are Chinese characters, and under the Document menu the filetype is UTF-8; yet something weird is displayed instead of the Chinese characters.

Now, take that .po file, convert it to .mo binary format, then back to .po:

img2

...now geany displays the Chinese characters correctly! Including the "Quick Setup":

img3

For the record, here is how I converted po -> mo -> po:

# msgfmt --check --output-file=quicksetup3.mo quicksetup1.po
# msgunfmt --no-wrap quicksetup3.mo > quicksetup3.po

Well, I discovered that it is the comments at the beginning of quicksetup1.po that cause the problem; deleted them and quicksetup1.po displayed correctly in geany.

I have put a fix into MoManager, but left puzzled with geany's behaviour.

EDIT:
It turns out I was barking up the wrong tree. The quicksetup.po file had an invalid UTF-8 sequence on line 123, and this caused the entire file not to display the Chinese characters. Weird. I fixed it by using 'iconv' utility to cleanup the file. This removes the invalid UTF-8 (inserted about line 1077 in /usr/local/momanager/momanager):

    mv -f /tmp/momanager/${ATEXTDOMAIN}.po /tmp/momanager/orig1.po
iconv -f utf-8 -t utf-8 -c -o /tmp/momanager/${ATEXTDOMAIN}.po /tmp/momanager/orig1.po
LANG=C defaulttexteditor /tmp/momanager/${ATEXTDOMAIN}.po

That fixed it.     

Tags: easy

Easy Buster running in container

September 15, 2024 — BarryK

I am prompted to revisit this mechanism after reading this post by forum member Stogie:

https://forum.puppylinux.com/viewtopic.php?p=130981#p130981

One of the reasons for creating Easy Containers was to be able to run other Linux distributions. There was a blog post in 2018 showing how to run XenialPup:

https://bkhome.org/news/201811/xenialpup-75-running-in-easyos.html

Quite a while since I tested this, so having a go with installing Easy Buster 2.6.2. Firstly, click on the "pkg" desktop icon and choose SFSget:

img1

Now choose the buster SFS:

img2

It downloads, then click on the "NEW" button:

img4

And that's it, now have "buster" icon on the desktop:

img5

Click on "buster" and it works:

img6

...what I have done as shown in the photo, is clicked on "petget" icon, then updated the package database, then installed Eye Of Gnome image viewer. It appears in the menu as "Image Viewer" but I ran it from a terminal to check that it didn't output any error messages. Yep, eog works fine.

Simple to flip back to the main desktop with Alt-F6, or on some keyboards the function keys require another key, like Fn-Alt-F6. On the main desktop, can click on "buster" to flip back, or "buster" in the tray.

As running in a container has security restrictions, this may impede some applications. What you can try is to run Buster with minimum security settings. In the menu "Filesystem -> Easy Container Management" you can choose "A container with absolute minimum security" for buster.   

Tags: easy

Fix client app passed param with space

September 12, 2024 — BarryK

Forum member Caramel reported a failure if firefox is passed a file on the commandline that has a space character.

Firefox is installed to run as user "firefox", and there are three steps. There is script /usr/bin/firefox, script /usr/bin/firefox.bin, and finally /usr/bin/firefox.bin0 runs the actual Fireox. Same situation with Chromium. having three steps seems complicated, but you can get an idea what they do by viewing the two scripts in a text editor.

Where the problem occurs is that firefox.bin calls firefox.bin0 passing $@, which means that firefox.bin0 will receive parameters thinking that each space delineates a parameter. We need to pass any parameter that has a space character enclosed in double-quotes. Here is the fix:

https://github.com/bkauler/woofq/commit/2e31744d92fc4bec4b7fc753cdc991d87fe6040d

Note this is not an isolated problem. It comes up all over the place, and it is preferable in Linux to not have paths and filenames with spaces.   

Tags: easy

Icon-free desktop tray icon fix

September 12, 2024 — BarryK

Forum member Caramel reported the problem:

https://forum.puppylinux.com/viewtopic.php?p=130762#p130762

Yes, when in rox-mode, if drag a folder from ROX-Filer onto the desktop, after switching to jwm-mode (icon-free desktop), the icon appears in the tray but doesn't work.

Here is an example in /root/Choices/ROX-Filer/PuppyPin:

<icon x="1144" y="164" label="usr">/usr</icon>

When X is restarted after switching from rox-mode to jwm-mode, /root/.xinitrc runs and calls /usr/local/ui/jwm/jwmrc-insert-icons, which is responsible for translating icons from the ROX desktop to appear in the JWM tray. I have modified this script, see github commit:

https://github.com/bkauler/woofq/commit/4c7c4a7a049676653762da7fd5b29fab2a52d2c9

Now an entry in /root/.jwmrc-tray is created that is correct:

<TrayButton popup="usr" icon="folder48.png">exec:/usr/local/bin/rox --dir=/usr</TrayButton>

Caramel, thanks for reporting that; little fixes like this are important.

I have just realised that EasyJWM is missing something important; it cannot delete icons in the tray that have been transferred from the ROX desktop. It can be done manually, by editing /root/.jwm/tray-icons and /root/.jwmrc-tray.       

Tags: easy