Guix works with EasyOS
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:
And thirdly, Guix:
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
The previous release, 6.3, was on September 10:
- EasyOS Scarthgap-series version 6.3 released — September 10, 2024
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
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
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:
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:
...now geany displays the Chinese characters correctly! Including
the "Quick Setup":
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
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:
Now choose the buster SFS:
It downloads, then click on the "NEW" button:
And that's it, now have "buster" icon on the desktop:
Click on "buster" and it works:
...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
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
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
Chromium 128.0.6613.119 compiled in OE
EasyOS 6.3 has Chromium version 127.0.6533.99. Have just now finished compiling 128.0.6613.119 in OpenEmbedded/Yocto, which will be in the next release of Easy.
Just now looked at the "meta-chromium" site, and see that Max has just built Chromium 128.0.6613.137:
https://github.com/MaxIhlenfeldt/meta-browser/tree/128.0.6613.137
Yeah, well, I'm not going to recompile Chromium; the build took
25 hours, and pretty much ties up my workhorse desktop PC for the
duration.
It is pretty disgusting; the Chromium source .tar.xz tarball is
6.4GB -- Chromium 123.0.6312.122 tarball is 3.3GB, that I compiled
in May this year -- how on earth can the source tarball grow by
3.1GB???? 3.3GB is already monstrous, and now it has doubled. I'm
gobsmacked.
Max's "meta-chromium" is a fork of this:
https://github.com/OSSystems/meta-browser
And Max syncs with it periodically.
There is another fork that focuses on building Firefox; by Gyorgy:
https://github.com/OldManYellsAtCloud/meta-browser
Tags: easy