One of the things I love about software, particularly open source software, is innovation can come from anywhere. Sometimes it appears out of large tech companies such as Red Hat, IBM or Sun and other times it can come from one person writing code on a second hand computer in their college dorm. Software is really the expression of ideas and concepts, which can come from anyone. So I really enjoy seeing small open source projects try new things. Some will succeed and be adopted and some will fade away, but the amazing thing is to see people put their idea out there and present it to the world. Which is why I was thrilled when a few people directed me to Paldo and suggested it was worth a look.
Paldo, which stands for “pure adaptable Linux distribution”, is a project focused on software packages and package management. Specifically, Paldo’s developers want to provide software which remains as close to their upstream source as possible. This cuts down on patching in the distribution and, in theory, allows any required patches to easily flow back to the original projects. As developer Jurg Billete told me:
Package management is handled a bit differently than in most other distributions. Upkg distinguishes between installed and selected packages. The set of installed packages consists of all selected packages and their dependencies. If a package has not been selected explicitly and is not needed as a dependency anymore, it gets removed on upgrade. This avoids a lot of conflict potential that may occur in other distributions and makes it possible to upgrade for a long time without re-installing the distribution every time a new version gets released.
Paldo packages are also very close to upstream packages. We only use Paldo-specific patches where really necessary. We do not even use separate -dev packages, which makes it very convenient for developers.
Software packages are provided in four different repositories, intuitively (and familiarly) labelled Stable, Testing, Unstable and Experimental. Reading through the project’s website I got the impression Paldo’s developers are trying to make a distro which has similar characteristics to Debian, but with fewer architectures and an attempt to offer just one application per task. The website continues to focus on packages, giving them their own special area where a user can search for software by name and, if the package is available, learn all sorts of information. Data provided includes a package’s dependencies, what packages in turn depend on it, the current version, and other interesting tid-bits. All of this software, we’re told, is handled by Paldo’s package management system, called Upkg, which we’ll talk about later.
The project’s website is well laid out and easy to navigate. It has a simple, clean and attractive presentation that I enjoyed. For new-comers there is a Wiki, which includes helpful information about setting up and using Paldo. At the moment, the Wiki has documentation in seven languages (German, English, French, Italian, Portuguese, Spanish and Polish), making Paldo accessible to a wide range of people. There’s also a forum on the website, giving users a place to interact and receive assistance.
I downloaded the latest Stable offering from Paldo, version 1.21, and burned it to a CD. The disc kicked off a GRUB boot menu with several different language/keyboard combinations to choose from. Once the user makes a selection, Paldo boots into a Gnome desktop with a blue and grey theme. The menu bar is placed at the top of the screen and, at a first glance, nothing really jumps out at the user. Poking around a little, we find a fairly common selection of programs. There’s a text editor, archive manager, OpenOffice, the GIMP, a video player, an audio player, a webcam app and disc burner. There’s also a VNC client, Evolution for e-mail, Inkscape, the Epiphany web browser and GParted for disk management. A little experimentation shows that Paldo comes equipped with codecs to play mp3 files and most popular video files, however pointing my web browser to YouTube showed Flash wasn’t installed. Also available is the GNU Compiler Collection, giving developers a good platform to start from. One disappointment I found while using the live CD was that my keyboard layout wasn’t recognized. Selecting the proper layout, either from the GRUB menu or from the Gnome configuration tool had no effect and I regularly found what I was trying to type wasn’t what was appearing on my screen.
The installer appears to be unique to Paldo and isn’t here to hold your hand. Like most things in Paldo, a little previous experience with Linux is expected. The user is asked to enter their regional information, including their preferred language, keyboard layout and time zone. I noticed, with some disappointment, my time zone isn’t an available option. The next screen allows the user to select which partitions will be assigned to which mount points. Possible options are the root directory, /home, /boot and swap. The installer doesn’t handle partitions itself, but does provide a button to launch GParted. So far as I can tell, there isn’t any option to assign other mount points besides the four mentioned above. The installer gives the option to install GRUB and then requests a new password for the system’s root account. The last step is to create a non-root account. The installer quickly copies Paldo’s files to the hard drive and the process is complete. Rebooting the machine takes the user directly to a Gnome login screen.
For my experiment with Paldo I used a generic desktop system (2.5GHz CPU, 2GB of RAM and nVidia graphics card) and my HP laptop (dual-core 2GHz CPU, 3GB of RAM and Intel video card). Once logged in, I discovered my keyboard layout was handled properly. The system was quick to respond and generally performed well, at least on my laptop. When running Paldo on the desktop system, my screen looked like someone had broken a stain-glass window and scattered the tiny pieces across my monitor. I was able to work from the virtual terminals without any problem, but the desktop was completely unusable. On the laptop, things went much smoother, with video, sound and my network card all working perfectly. My Novatel mobile card worked without any configuration on my part and the touchpad was handled well. My webcam also worked without any tweaking. Unfortunately my Intel wireless network card wasn’t picked up, but otherwise Paldo handled the HP hardware well.
The distribution’s security is pretty good, with the exception that both the live CD and the locally installed version run a secure shell service, giving users (including root) remote access. This concerns me as the root password for the live CD is publicly available. The user is automatically logged in to the live CD environment as a non-root user and I was happy to see the installer insist on setting passwords for the administrator and creating a regular user account. Once installed, the root directory is locked down, preventing regular users from accessing the administrator’s files.
Getting back to Upkg, it’s an interesting tool which is based on Mono and appears to be inspired by Debian’s Aptitude. I was unable to find a graphical package manager and so took to the command line to try out Upkg. The Paldo website has a brief tutorial on using their package manager, though it left me with some questions. For example, what’s the difference between upkg-add and upkg-install? According to the man pages, upkg-install “adds the specified package to the package selection”; upkg-add doesn’t have a man page. I soon found this to be a moot point because neither command would do anything useful on my system. Running upkg-add, upkg-install or upkg-remove resulted in a long string of Mono error messages, concluding with “Could not generate script!” I checked the project’s forum and found others had had this same issue and most had corrected it by clearing Upkg’s cache. I followed these instructions, but was still unable to add or remove packages from my machine. I was able to search for software using upkg-search (which doesn’t have a man page either), though the results were rarely useful. For example, if I go to Paldo’s website and search for “chess”, I’m given a package called pychess. Running a search for “chess” using upkg-search returns gdm, ghostscript and gnome-themes, because each of these packages contains a file with the name “chess”. Sadly, pychess, on the other hand, is not returned as a valid result.
After a few days of using, or trying to use, Paldo, I was beginning to feel like my experiment was cursed. The first time I downloaded the Paldo live CD image, the file I received was corrupted (its checksum didn’t match the one on the project’s download page) and I had to download a second time. Likewise, the first CD I burned turned out to be a coaster. Paldo failed to handle my desktop’s video card and my laptop’s wireless hardware. My keyboard layout wasn’t handled properly by the live CD, my time zone wasn’t supported by the installer and I was unable to get Upkg to install, remove or update any software. Some of these issues are just poor luck and no fault of the project while others are bugs and will hopefully be fixed. The developers have some interesting ideas, I especially like their vision of clean package management, regular updates and providing one application for each task. It sounds simple and uncluttered. The fact my Novatel mobile modem worked out-of-the-box is impressive as it’s a feat most other distributions don’t accomplish. Judging from the forum posts and review requests I received, Paldo works really well for some people. I’m sorry to say I’m not one of them.