Versions are listed on reverse order, the first is the last one.
One more step forward with fedora, openmamba, openSuSE and RHEL distributions in general:
krill
: module bootloader, inserted a --force
for fedora family, on grub2 installation because otherwise it refuses to install itself on UEFI unsigned;krill
: module bootloader. on fedora familly/RHEL derived distros (AlmaLinux and RockyLinux) but not on fedora, I need to replace from code the boot loader entries, since the ones generated during installation carried the UUIDs of the parent system.krill
: fixed the installation issue on disks with a pre-existing Software RAID configuration created by Intel Rapid Storage Device Array. Thanks to Marco Mancino;live
: updated kernel parameters on the live image. Thanks to Silvan Calarco for suggestions and Hosein Seilany for implementation;archlinux
: we have a new calamares version: calamares-eggs-3.3.12-1-x86_64.pkg.tar.zst
.This version, although working, must condider itself still experimental, I had the bad idea to boot almalinux, fedora and rockylinux on UEFI with systemd-boot instead of the canonical grub2. Let's consider it, precisely an experiment.
One more phase of code reorganization without adding new features.
I intervened mainly on pacman.ts by restructuring it and renaming pacman.d the folder for various distributions; on bleach.ts. distro.ts, ovary.ts, and created diversions.ts class in which I tried to collect what I could.
Later, I reorganize again pacman method distroTemplateInstall and tested on Ubuntu noble and Debian bookworm.
It seem not breack, but I need to release.
I am undecided whether to make a new release and I will not, in the sense that this release does not add much for Alpine, Arch, Debian, Devuan, Fedora, Manjaro, openSuSE and Ubuntu. However, in a burst of creativity I am adding three more distributions almost simultaneously: ALDOS, openMamba and VoidLinux. This is the current status:
So no package will be released of this version, but a release will still be done and then start again with a devel branch.
It would be greatly appreciated if experts from these three distributions would like to collaborate, from doing tests to making suggestions or, reviewing the code.
krill
: bugfix on module for machine-id
creation on new installation;RockyLinux
and AlmaLinux
now work nicelly with penguins-eggs and is
possible to build instalable custom servers or desktop.The result is the two main open-source enterprise operating systems.
krill
: trying to add RockyLinux and AlmaLinux to penguins-eggs, we updated our TUI system
installer to manage systemd-boot
entries if present;isohdpfx.bin
as part of syslinux configuration. Actually we use - for all the distros - a subset of syslinux v6.03,
from kernel.org and embedded inside eggs.wget
as dependencies on all distros; removed dependencies from syslinux on all distros;In switching from version v10.0.44
to v10.0.45
, I removed a class written a long time ago,
to make eggs compatible with node8.x version and, of course, no longer needed.
Unfortunately, in rewriting it, I went to use the fs.statSync()
function.
which for isSymbolicLink()
return not the value of the path
, but that of the destination link.
This caused /bin
, /sbin
, /lib
and /lib64
to be interpreted as directories and
not as symbolic links.
eggs, was correctly performed both in the creation of the ISO and its installation, but the system remastered was not 'fertile'. so to speak. The generated ISO would not boot.
Now I have replaced fs.statSync()
with fs.lstatSync()
which gives the correct answer in
case of symbolic links.
This was a sneaky mistake that was difficult to detect and understand.
bugfix
: the previous version penguins-eggs-10.0.46-1
was working only on GUI using calamares, but generate an error -
due a bug - on CLI systems or GUI system without calamares.calamares
: now, using calamares, the default filesystem selected is the original filesystem of the parent system;calamares
: all modules in /etc/calamares/modules
and /etc/calamares/settings.conf
are reformatted, removing
the comments;calamares
: the package calamares-eggs
for ArchLinux was aligned to the new release calamares-3.3.10
.eggs love
now not fail if eggs is not configured yet and, configuration is made with eggs dad --defailt
;eggs produce
bugfix, eggs produce
under certain conditions asked for confirmation twice;pxelinux
, isolinux
dependecies on debian;eggs export pkg
and eggs update
now work also for AlpineLinux. This will let me to publish Alpine packages on sourceforge.With the addition of alpinelinux, fedora and opensuse, penguins-eggs is changing - especially from a development perspective.
I have started to intensively use a source-based installation method, which -simulates- the installation of a real package for the distribution.
This saves me a lot of development and testing time.
On the other hand, having real installation packages allows for better user support and easier upgrades.
I could really use someone to take care of implementing penguins-eggs packages for these three distributions. On Alpine Linux everything is almost ready, basically only Alpine's approval is missing, for fedora and opensuse it is a matter of creating an rpm package from the npm package and adding the dependencies specified in the prerequisites.
ldlinux.c32
, libcom32.c32
and libutil.c32
, they are part of syslinux.This project it the only solution capable to remaster multiple distos, there is nothing similar around. It'a little an inverse of a fork, we trying joining distros and get all together.
Good, bad? I don't know: time will answer. I suggest to use eggs to learn a different distro too, at last is that I do wnen try to extend eggs.
The next step should be to remove the need to go to recovery shell before mounting.
Thanks to Eric Bradshaw for the advice.
alpinelive
, alpinelivesquashfs
per boot live;eggs adapt
;egg-of_alpine
-release
- processor
. Example: egg-of_alpine-3.21.0_alpha20240807-colibri_amd64_2024-08-22_1222.iso
or egg-of_alpine-3.18.8-naked_amd64_2024-08-22_1400.iso
;eggs love
;love
in /etc/penguins-eggs.d/love.yaml
.eggs wardrobe get
and sudo eggs wardrobe wear albatros
;A bit of work to perfectionate packages: Alpine post-install, post-deinstall and on Debian postinst scripts.
Working again on Alpine, revised man pages, taking experiences. A APKBUILD is ready to be merger, and I need to release to spread and becouse the eggs code is the same for all the distros.
From now we have penguins-eggs on: alpine, arch, debian, devuan, manjaro, ubuntu. Isn't that great?
Alpine is so light, can be remastered on a breeze, It's like to have Lego and can build what you want.
Start with Alpine naked and add... don't work as you like? change it! Add linux-firmware at last to remain light, or add just that you need in your case.
You can check the status of Alpine Linux remaster on On the way of Alpine discussion, the experimental ISO can be download from our sourceforge page. Test it, is very light, under 700 MB, about half of the Arch version, and see how to use penguins-eggs from source, there are video.
After a lot of changement to include Alpine, Fedora and SuSE on penguins-eggs, I need to release and have a stable start point to continue.
I'm working mostly to bring eggs to AlpineLinux and fedora, the changes are included here, but note eggs is not yet usable on this distros.
biglinux
as DISTRO-NAME, not BigLinux based in Manjaro Linux
;filesystem.squashfs
, a not booting iso image, and laks again to be able to create an initramfs
to boot from it.produce
: removed flag --udf
.Traditionally eggs use xorriso to create ISO images, but this can be a problem, becouse Windows don't support iso9960 larger than 4.7 G.
We can create ISO images more than 4.7 G and be able to use them in windows using genisoimage.
Trying to find a compromise, I placed xorriso and genisoimage as alternative dependencies to penguins-eggs. On /DEBIAN/control
file of the package:
Depends: coreutils,
...
xorriso | genisoimage
Suggests: calamares
...
Installing penguins-eggs with xorriso (default) produces images in iso 9660 format while installing penguins-eggs on a system where genisoimage is installed produces ISOs in Universal Disk Format.
In each case you can overcome the 4.7 G barrier, but if you want your users to be able to use rufus or similar on Windows to create boot devices, use the UDF format.
At this point the --udf
flag is no longer necessary and was removed, depending just on the way you installed penguins-eggs.
clean
: bleach now don't remove all /var/lib/apt/list
but just /var/lib/apt/list/lock
. This must to solve a problem on sudo apt update
;yolk
: I added a completely new configuration file for command yoik
. You, editing /etc/penguins-eggs.d/yolk.yaml
can insert/delete packages to be present on the local repository /var/local/yolk
.produce: added new flag --udf to produce ISO in Universal Disk Format with genisoimage
command. Note: genisoimage must to be installed before.
This is necessary because programs like rufus in Windows, do not correctly read ISO files generated with xorriso, when they are greater than 4.7 G.
linuxmint wilma
, ubuntu noble
, ubuntu devel
(rhino).sudo eggs install
dad
: bugfix on flag --file;exclude.list.d
: usr.list is now completely - intentionally - empty;produce
: removed flag --sidecar, not necessary.produce
: added the --sidecar
flag, allows the inclusion of an arbitrary directory within the generated ISO. Uses can be disparate, I leave it to you.
The /usr/bin/penguins-links-add.sh
script called by /etc/xdg/autostart/penguins-links-add.desktop
now waits for the Desktop folder to be present before copying the links to the desktop, with the result that all links are shown correctly.
produce --excludes
, now accept static
, homes
and home
,Use:
sudo eggs --excludes static
you can use a static exclude.list;sudo eggs --excludes homes
you want to clean all users' homes;sudo eggs --excludes home
don't save my home dir.--file
to have own configuration defaults.Configuration defaults are passed with own YAML file, eg: custom.yaml
# custom.yaml
---
root_passwd: secret
snapshot_basename: columbus
snapshot_prefix: '' # none
user_opt_passwd: secret
user_opt: user
Usage: sudo eggs dad --file ./custom.yaml
krill: fixed a annoyng problem, when use resolvectl krill was not able to create to link /etc/resolv.conf
to /run/systemd/resolve/resolv.conf
, now I fixed this. I'm using krill sudo eggs install
more than calamares due it's much fast and can be used with flags like --unattended
, --nointeractive
, etc.
Yolk was created mostly to let installation without internet connection during the system installation. Before, I decided to remove all repos during installation with calamares/krill and use just /etc/apt/sources.list.d/yolk.list
, now I changed this strategy: I just add /etc/apt/sources.list.d/yolk.list
during installation process without remove the others repos. The result is a light slow initializations - when we are not on the net - but the possibility to add every packages during installation when we are connected.
genisoimage
to be used instead of xorriso
to generate the ISO;eggs produce --script
for both: Debian and Ubuntu derivatives (for the moment it has been tested only on Debian bookworm and Linuxmint 21.3 Virginia;eggs produce --script
actually generated a link in /home/eggs
to the ISO in .mnt
;eggs produce --script
on ArchLinux too, but actually don't work.I did my best, I hope you find errors but not too many, that's enough for today!
For the joy of all respin producer who don't like to have my eggs on the desktop, I changed a flag in sudo eggs produce
.
I already add flag --noicons
, equivalent to not create icons at all on the desktop: not eggs, not calamares, and so on, I think too much. So I update it to: sudo eggs produce --noicon
in singular form, and remove just my eggs symbol and my blog link. For someone this can be important.
For others, don't take cure, always is better to have eggs on the fridge!
Generate debian packages for all Debian/Devuan/Ubuntu distros plus a specific for Ubuntu bionic, from the same codebase. Thanks to mods in perrisbrewery.
Of course Arch and Manjaro are generated aside, thanks his PKGBUILD.
To have bionic, and armonize with all the others version, I did:
"engines": { "node": ">=16.0.0" },
Now we have two template for control file:
live-config-systemd | live-config-sysinitv
, added live -- live-boot
, and put `nodejs (>= 16);/lib/live/boot
is erased. The system work, eggs work and can produce, but the resulting ISO will not boot! To solve this problem, before generate the ISO, give: sudo apt install live-boot --reinstall
. This will restore /lib/live/boot
and it's full contents.I received from Glenn Chugg same informations about fixes on README and on eggs skel
command.
./conf/cinnamon
in /etc/skel
.zstd 1M Xcompression-level 3
, fast the same and better in decompression;zstd 1M Xcompression-level 15
optimized to use with pendrives.eggs cuckoo
. I have not succeeded yet, you can refer to the related issue.sudo eggs install
now have a new option to chroot on the installed system before reboot. This let you di add/remove last time packages, before your system is rebooted;packages.conf
or it's own, packages are added/removed after it's configuration. This born becouse of Devuan daedalus amd64 version, I noted it go in kernel panic after installation, if penguins-eggs and it's dependecies are not removed. The problem arise - probably - from the package live-config-sysvinit
. I solved using the option --release
in command produce
, to configurate calamares/krill to remove penguins-eggs, calamares and it's dependencies before to finish the installation process;A whole series of tweaks to make the Debian package more standard, a pity not to have been able to generate a single package -any
for all architectures.
There would be many ways to change the version number and emphasize an important fact in the code. I don't pretend to be right, but having spent a full morning reintroducing new headers on the sources and, a few days switching from commonjs
modules to a more modern node16
to support both CommonJS and ECMAScript modules, I decided this way. Don't hold it against me...
In this version all dependencies have finally been updated. from oclif, ink, etc.
Another new feature, for those who want to try their hand at penguins-eggs development: you can create your penguins-eggs deb packages with these simple commands, of course after installing nodejs and pnpm.
To make your life easier and save yourself from installation of nodejs and pnpm, you can use any recent version of my live colibri ISO.
git clone https://github.com/pieroproietti/penguins-eggs
cd penguins-eggs
pnpm i
pnpm deb
In short, what I am about to tell you is that it is a good time to get on board!
I consider the cleanup and adjustments resulting from the switch to oclif4 and Debian package name change to be over. I put the new version in the PPA and you can install it with the command: sudo apt install penguins-eggs
.
Removed a lot of unusefull code, when eggs started I thought to use npm packages to distribuite it, so inside there was the code to install necessary packages. From long time now, we produce deb packages and arch packages so there was no need ot that code. I tested it working on i386 Debian Bookworm, amd64 Debian Bookworm, Arch.
Released for i386, arm64 and amd64. Checked on i386 Debian Bookworm, amd64 Debian Bookworm, Arch.
It had been a long time since I was forced to use an outdated version of oclif because I had modified it to be able to use pnpm instead of npm. Recently, I think in March, with version 4 of oclif it is possible to use oclif with pnpm and I could then try to upgrade the package. The next step was to put the pieces back together. I do in fact use - in addition to oclif - another mine Debian package building tool called perrisbrewery and, of course, I had to update/modify that as well.
Basically this version is different, although on the surface it does not seem too distant to the previous one.
For that reason I decided to highlight the change by changing in addition to the release also the name of the package itself, no longer eggs
but penguins-eggs
. Commands and logic remain the same.
I made a little update penGUI too to 0.7.9 to reflect the different package name.
This package I place in testing at the moment, it definitely needs same break-in, but it assures us to stay well anchored in the present.
Old changelogs are located onchangelog.d.
Don't esitate to ask me for suggestions and help. I hope to receive feedback.
No need other configurations, penguins-eggs are battery included or better, as in the real, live is inside!
There is a Penguins' eggs official guide and same other documentation - mostly for developers - on the repository penguins-eggs under DOCUMENTATION. I want to point out hens, differents species a brief how to use eggs in Debian. Arch and Manjaro, and the post Arch-naked on the blog which describes how to create an Arch naked live, install it, then dress the resulting system with a graphics development station.
You can contact me by mail or follow me on blog, facebook, mastodom, github, jtsi, reddit, telegram, twitter.
Copyright (c) 2017, 2024 Piero Proietti, dual licensed under the MIT or GPL Version 2 licenses.