site  contact  history  index

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

MPPT controller for custom trike

September 13, 2024 — BarryK

The custom recumbent tadpole trike project cotinues. Here are recent blog posts:

...that last post describes the frame on which the solar panel will be affixed. There is now framework underneath on which to attach the MPPT battery charge controller.

The voltage from the solar panel is lower than the LFP battery, requiring a "boost" controller. This is the opposite of a "buck" controller, which is for charging a battery with lower voltage than the panel. The solar panel is nominally "24V" and the battery "48V" LFP.

Over the years, I have bought a lot of these controllers, both types. I have tested buck controllers that claim to be MPPT, but aren't. MPPT means "Maximum Power Point Tracking"; the peak power point, that is, the voltage and current, out of a panel varies with temperature and insolation (light intensity). That peak power voltage and current drops as temperature rises; I don't have figures off the top of my head, but I recall about 0.5% power drop for each 1 degree Celsius rise.

Over the last couple of years, I have purchased four boost controllers, and had the intention of doing a comparison test, but never got around to it. Anyway, the first one I bought is the Juntek MPT-7210A:

https://www.aliexpress.com/item/32871591762.html

img1

What raised my suspicions about this controller is that the solar panel voltage has to be set manually. I searched online and found a couple of people commenting that this is not a MPPT controller, despite the claims. Yes, it does track, but it tracks the fixed voltage; that is not MPPT. I must emphasize though, that I haven't tested it and have not verified that it is not a true MPPT controller.

I have three other boost controllers that are genuine MPPT, albeit determined from the specs and reviews, not from personal experience yet. The next one I bought, that I thought would be great for the trike as it is fully sealed, the elejoy 400W step-up:

https://www.aliexpress.com/item/1005005762970289.html

img2

Later on, found another, that I couldn't resist buying, the Lensun 550W buck-boost controller:

https://lensunsolar.com/collections/solar-controller/products/lensun-buck-boost-solar-controller

img3

...more expensive than the others; it cost me AU$130 including AU$25 shipping.

Lensun claim that this is both a buck and a boost controller. As a retired electronic engineer, I know that this is technically possible, but very unusual. Unique at that price. Again though, I must emphasize that I haven't verified the claim.

I have another boost MTTP controller, rated at 600W. Leaving that out of consideration for the trike, as the solar panel is only rated at 200W -- likely only to deliver about 160W based on past experience -- but then, this panel does look like from a reputable manufacturer and actual output might be closer to the rating.

Of the three contenders, only two of them are true MPPT controllers. I have built framework under the solar panel frame so as to be able to mount either, the elejoy or the Lensun. Might get around to comparing them, but for now, have put the Lensun controller on the trike.

A downside of the Lensun is that it is not sealed, so probably not a good idea to ride the trike while it is raining; at least, not without affixing some weather protection around the controller. Though, there would only be a problem with rain blowing under the solar panel frame while riding.

Yes, the Lensun controller is mounted under the solar panel frame:

img4

...it is mounted so that I can see the front display while seated.

Notice the switch beside the controller; that is to disconnect the solar panel. Probably not essential, but I thought might as well put it in (note, there will be a circuit-breaker between the controller and battery). Yet to be wired up; the black twin cable shown in the photo goes down the vertical tube and to the battery.

Coming along, slowly but surely!

EDIT 2024-09-14:
I posted above that the Lensun controller cost me AU$130. I wondered if it is available cheaper elsewhere. It seems that Lensun is a USA company and the controller is manufactured in China. I found it on Amazon and also another brand, "SolarEnz":

https://www.amazon.com/Controller-Lead-Acid-LiFePO4-Batteries-Electric/dp/B0B74HF4X3

...no mention of it being both buck and boost, nor mention of extended input voltage above 50V. But perhaps the external box is the same and Lensun have purchased it with different internals.

I wondered if it is available direct from China, and made an interesting discovery, this for AU$48 including postage:

https://www.aliexpress.com/item/1005007612832046.html

...notice that some labeling has been blacked out. Ha ha, I'm very curious, tempted to buy it just to see what the labeling is. Perhaps it is one of the models manufactured for a reseller and the vendor doesn't want to show that.    

Tags: light

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