You might be wondering why I chose to derive Kororaa from Fedora. Perhaps you have used Fedora in the past yourself and been burnt, or perhaps (like I used to) you can’t stand Yum, Fedora’s package manager. Perhaps you even hate RPMs?

Well let me say, I understand!

Let me also say, that I think you should give Fedora another chance (like I did), or at least continue reading this post

All distros are different and they have different goals. However, I’m drawn to Fedora for several reasons including the fact that at its heart, Fedora is about building a community of contributors, not just consumers.

Relationship with Red Hat
Fedora is a community operating system, whose major commercial sponsor is Red Hat. Many Red Hat engineers work on free software projects (see Upstream below) and Fedora provides a platform to push those changes to a large audience. While there is a small team of Red Hat engineers dedicated to working on Fedora, it remains primarily a community driven project.

Values
Fedora has a great set of values, which embody the very heart of the community; Freedom, Friends, Features, First. A central goal for Fedora is advancing free software and content freedom.

In particular, I admire Fedora’s strong support of freedom. This means that they do not ship (nor support) proprietary software, but naturally prefer (and create where necessary) free software alternatives. For example, instead of building tools to help install NVIDIA drivers Fedora invested in Nouveau, the free 3D driver for NVIDIA cards. This not only keeps Fedora free to re-distribute, but it benefits the whole Linux community. That’s extremely admirable, in my opinion.

That’s not to say that you can’t get the NVIDIA drivers, or other proprietary software for your system. Various third party repositories, such as RPMFusion, exist for this very purpose (and of course, Kororaa configures all this for you out of the box!).

Package Management
Yum (and RPM) have made leaps and bounds over the last few years and I actually quite enjoy using it now (and it’s quite fast!). Having said that, most package commands are run through PackageKit these days. As for RPMs themselves, they’re just a binary package format like Debs – it’s the package manager that makes the difference.

Download an RPM from the net and you can install it with Yum (or via the GUI using PackageKit), which will automatically pull in any dependencies for you. You rarely use the rpm command, like in Debian and Ubuntu you rarely use dpkg.

Security updates
Yum has a very handy feature, namely the ability to list and install only security related updates. It’s as simple as:yum --security update

If that wasn’t useful enough, you can also install an update which fixes a specific bug. You can get a list of all updates and their bugzilla numbers with:yum list-sec bugzillas

Now, once you have the update to fix that specific bug, you can install it using the bugzilla number from the list above.yum --bz 650995 update

You can also combine the security option with bugzilla:yum --security list-sec bugzillas

How powerful is that?!

Groups
Fedora also has a wonderful addition, called groups. After some educational software, office programs, or support for your language? It’s easy, just install the group you need, like so:yum groupinstall "Educational Software"

If you’re a developer, getting started with Fedora is easy. Just install the development group you need, such as GNOME, KDE, Java, Kernel, Perl, or even the Web.yum groupinstall "Development Tools"

There are almost 200 groups, ready to make your life easier!

Community repos
Fedora also has several contributor repositories available for end users. This is sort-of similar to Ubuntu’s PPA (Personal Package Archive). However, Fedora often provides updates for major packages, so you don’t actually need to add a separate repository to get the latest version of things like KDE.

Updates
Similar to other non-rolling release distros, Fedora generally only applies bug fixes to a stable release, rather than introducing new features with later versions.

Having said that, Fedora does often provide major updates to some specific programs, including KDE. In general, I have found that often packages like Firefox, OpenOffice.org and the Linux kernel itself get major updates. So, with Fedora you are not left behind quite as much, nor having to add repositories for unofficial builds. I like that

Innovation
With every new release, Fedora is often leading the charge to implement new free software technologies. In fact, Fedora’s primary sponsor Red Hat is responsible for some of the greatest desktop enhancements ever, including AIGLX (Accelerated Indirect GLX), D-Bus, DeviceKit, HAL, NetworkManager, Ogg Theora, and PolicyKit. Even the Wayland display server (which Ubuntu has announced they are moving to) was started by Kristian Høgsberg when he was working for Red Hat (he’s now at Intel).

Upstream
Fedora works as closely to upstream as possible. They don’t go off on their own tangent with disregard for upstream projects. If they want to have something changed, they work with upstream to create fixes and introduce new features.

Take the Chromium web browser for example. It’s not included in Fedora for several reasons, but Fedora people are working with Google to fix these issues, so that it can be included nicely. By doing this, other distros will benefit!

Having said that, there are Chromuim builds available too. Just add the repository and away you go!

Security
I used to wonder at the usefulness of SELinux (Security Enhanced Linux). Afterall, this is Linux right? It’s secure enough.

That might be true, but SELinux is still extremely useful (and even Debian is now implementing SELinux).

SELinux works by protecting your system, even if there is an exploit available in an application which gives users root access. Take Apache for example. In a non-SELinux enabled system, if a user gains root through an exploit in Apache they will have full access to your machine. Not so with SELinux. Even if someone gains root access, there are rules around what Apache can and can’t do. For example, these might be restricting it to only read the directory which holds websites. Your system is compromised, but the damage is limited.

SELinux is not just useful for servers. It’s also valuable to your desktop system, especially if you use Adobe’s proprietary flash player (which is known to have lots of security holes). When Fedora first implemented SELinux, there were lots of issues because it would block the system from doing what was considered normal tasks. These growing pains are now over, and SELinux rarely gets in the way. Even if it does, the graphical tool which pops up will tell you how to change that particular behaviour (if you really want to).

Of course, at the end of the day you can still turn SELinux off (or just to warning mode). Kororaa leaves it enabled, as it’s a great way to add extra security to your system, especially as a major part of our lives are now lived on the Internet.

Tools
Fedora comes with lots of handy graphical tools to help you manage your system, including

firewall

language settings

network shares

services

users

web server

And many more..

Reliability
In the last few years I’ve been solely using Fedora and I have been super impressed with its reliability. Things just work, as you would expect them to. No weirdness. Even though Fedora provides major updates to many packages, it’s still more reliable than other popular distributions I’ve used. Perhaps this is due to sticking close to upstream.

Summary
Fedora is truly a great, free operating system. Its core principles are ones that I fully support, but which I recognise might restrict or turn off some users. This is why I chose to re-launch Kororaa as I have, so that users don’t give up on Fedora (and Linux) before they have a chance to love it. I see great potential in Fedora, and great benefit to those who are using it.

Thanks to their wonderful build tools like livecd-creator, I am able to build a powerful operating system that includes all those tweaks and extras that users want.

Kororaa Lite is a minimal KDE based system which provides a smaller footprint for users to then install the programs they want. It disables various services and cuts out some hefty KDE features by default, to reduce the resource footprint. It might be useful for netbooks and lower-end systems, or users who want to start with a solid base and build up from there.

It is designed to provide Internet connectivity out of the box and focuses on the following:

I know that you’ll be looking for something Linux related to do over your Christmas holidays and New Year so I’ve just released the first installable Live DVD x86_64 beta for testing. The final release will be Kororaa 14 (derived from Fedora 14), codenamed Nemo. As with the original Kororaa, it’s based on KDE.

If you can find the time, I would really appreciate some feedback. Tell me it’s crap, tell me I suck, but tell me something I’m really looking for suggestions on how to improve it and make sure that everything works. If you’re interested in contributing to a project like this, then here’s your chance!

Essentially, Kororaa has been re-born as a Fedora Remix, inspired by Rahul Sundaram’s Omega GNOME based Remix. I switched to Fedora about a year and a half ago, and I love it. Kororaa has re-emerged out of a desire to see others using Fedora, and so aims to provide a system which sets up a lot of the magic for you, out of the box. This is something I want my family (and all my friends) to be able to install and use. There are lots of things still to do, but I hope you’ll try it out and let me know what you think!

Kororaa aims to provide all general computing uses out of the box (well, as much as possible anyway). It aims to include the software packages that most users will want (this means Firefox for KDE, GIMP over Krita, VLC over DragonPlayer, and OpenOffice.org over KOffice Calligra, etc). Adobe’s Flash plugin and NVIDIA’s graphics drivers are each installable with a double click.

See the About page for a list of what Kororaa aims to achieve, and see the Changes page for a list of customisations and their status.

If you’re wanting to try out Fedora, but want all of your multimedia working out of the box, then give Omega a try (a Remix of Fedora). Rahul Sundaram has just released the latest version, Dalmation, which is built on Fedora 14 and available in both 32 and 64bit flavours.

Omega is a completely free and open source Linux based operating system. It is a installable Live image that includes comprehensive multimedia functionality out of the box. It is a Live image that can be optionally installed to your hard disk. Omega is 100% compatible with Fedora and a Fedora Remix only including packages from Fedora, RPM Fusion and Livna software repositories.

Coming from a Debian background, upgrading to new releases is second nature. Unfortunately, Fedora doesn’t seem to have it quite as down pat. Nevertheless, it’s possible and works quite well (but there are pitfalls, so read on).

Run the preupgrade tool, and follow the prompts (remote upgrades over VNC also supported):preupgrade

PreUpgrade will prompt to reboot your computer and will update your system automatically. All of your packages should be updated and your repositories configured for you (I also had RPMFusion, Chromium and yum-rawhide which all updated as expected). On one of my systems, even the NVIDIA driver was automatically updated and configured. Now you’re booted into your new Fedora 14 system.

OK, this is where things get a little tricky. Some packages might be no-longer supported, there might be removed dependencies and the like. So, there are two neat commands that we will use to identify these packages, so that you can remove them.

package-cleanup --orphans
package-cleanup --leaves

But wait.. I discovered that there’s a more important step to do first, or you’ll cause yourself a headache!

Fedora (unlike certain other distros I know) provides major updates to the latest versions of packages (like OpenOffice.org, KDE, GNOME, etc). Yay! It’s possible that your new Fedora system is running the same version of, say KDE, as your old one. This was indeed the case with my Fedora 13 to 14 upgrade (both run KDE 4.5.2 at time of F14 release).

Actually, the build of some important packages on Fedora 13 (like kdelibs-4.5.2-8.fc13.x86_64) were actually more recent than on the newer Fedora 14 system (kdelibs-4.5.2-5.fc14.x86_64).

The package-cleanup tool correctly lists kdelibs-4.5.2-8.fc13.x86_64 as being an orphan and if you were to remove this, you’d break your system badly. In fact, if you’re running yum’s brilliant new autoremove deps feature, as I am, you’ll lose most of your system. It makes sense – you are telling yum to remove kdelibs, so it goes and removes everything that relies on it! Yikes.

So first, we need to fix this by running the yum distro-sync command which recognises that we need to downgrade that kdelibs packages (and not remove it!).

Once we downgrade these packages, we can then remove any other orphans we might have, with package-cleanup –leaves and package-cleanup –orphans (I didn’t have any). One last thing to note – Fedora will not replace packages from the newer release if they are exactly the same version. For this reason, you will probably have some F13 packages still installed on your computer – don’t worry, that’s correct. They will be upgraded in time (if required).

So, now I think I know how to successfully upgrade the system without breaking it If anyone has some other tips or corrections, please let me know! Hope that’s helpful.

Today I got my hands on a suitable build of yum (add the yum-rawhide repo and set clean_requirements_on_remove=1 under [main] in /etc/yum.conf) and I started to test it out on several packages, all of which introduced dependencies. My initial findings? It’s great.

Single package with dependencies
I started with a single package with several dependencies. When I uninstalled the parent package, yum also removed all of its dependencies which were not needed by any other package (i.e. orphaned dependencies).

As I was hoping, yum removed all 5 dependencies along with Ekiga itself. Ta da!

Result: Tick!

Packages with shared dependencies
I then tested two packages which have shared dependencies. What I would expect is that only the dependencies which are unique to the application being removed, are uninstalled. Other shared dependencies remain, because the other program still requires them and is not being removed.

Removing a package’s dependency
I then tried to remove a dependency, rather than the parent package. I would expect this to remove all parents which required that package, along with their other dependencies.

Let’s look at an example, gnash-plugin. This package pulls in three dependencies (including the actual gnash package).

As you can see, it correctly removed the parent package, which could no-longer operate without the dependency.

This is such a great advancement over remove-leaves, where last time I tried to remove gnash-plugin (after testing it out, I didn’t want it) yum wanted to remove Firefox!! Fail.

Result: Tick!

Suggestion – clean up existing system
One thing I would like, is the ability to run a system wide cleanup using this code in yum, rather than other rpm orphan tools. Sort-of like an apt-get autoremove. Theoretically, if you’ve always removed any packages on your system with this new feature then you should be right, but it would be nice to sort-of do a clean up at any point (on any system) and get yum to remove any orphaned deps for you. Maybe this already exists.

If you want to clean up existing orphaned dependencies, then package-cleanup is your friend (from yum-utils).

Take a look at all the packages that are orphaned, and make sure it is sane.
package-cleanup --leaves

If you’re happy with the list, you can just remove them all (after you’ve enabled yum’s new autoremove feature, of course!):

yum erase $(package-cleanup --leaves)

You can instantly see the benefit of this new feature – on my machine this command also removes brand new orphaned dependencies, created by the orphans I’m removing! That’s 59 packages in total.

Without this yum feature, it would only remove 36 packages. You would need to run package-cleanup several times, until you’ve really removed all orphaned packages.

Similarly, this works for package-cleanup –orphans but it would be great it this was built into a single yum cleanup type function – one command to do it all.

Summary
From my initial testing, this works really well, although I’ll continue to test it and see how we go. Hopefully this will find its way into Fedora 12, 13, and 14 rather than just 15.

I’m so grateful for this work – it’s something I’ve been crying out for ever since I made the decision to stick with Fedora. Thank you, thank you, thank you!!

Coming from a Gentoo/Debian background, one thing that has constantly bugged me on RPM based platforms like Fedora is the lack of decent, reliable dependency removal.

It seems so simple (and Debian has done it since the dawn of time) – if I install package x which pulls in dependencies y and z, then when I remove package x, I want to remove dependencies y and z, if they are not required by any other package.

Yes, there is the remove-leaves plugin for Yum and various RPM orphan checking tools, but in my experience, they are just not reliable.