Archive for July 19th, 2006

Regarding RPM & DPKG usability

I would like to explain a bit more the 8th point I did on my SLED 10 rant. Here’s the general idea (which can work for both RPM and DPKG):

You create a website that looks like gnomefiles or versiontracker. It should look professional, well done, informative and not like this. You let third party packagers create packages for third party apps and you let them upload them. Upon receiving the RPM file, you check it: 1. With which versions of the OS this RPM would work 2. Does it conflict with other uploaded RPMs or the latest packages of the distributor’s updates. If all is good, you accept the RPM and let the packager fill up some generic information about the software. Then, the software goes live and people can visit its gloryfying web page via the bookrmark in the OS’ web browser. Now, when the user is trying to download the RPM it links to an rpm:// or dpkg:// URL instead. This is a special http type that it’s registered with the OS and its understood that this a package for installation. Immediately a software-installer GUI application comes up, downloads and installs the package for the user. Before it downloads the package, the GUI app checks with the website to see which are its deps and its requirements. If there are missing dependencies, the GUI app checks on the same website to find the extra packages needed and also checks with the OS’ own package database in the DVD (the listing is saved in the installed OS). If the deps are satisfied via extra packages it downloads them and installs them too. If not, then the GUI app bails out, but this should never happen because the website has already checked for these deps when the packager uploaded the RPM.

Additionally, the GUI app should have losen rules about dependencies by default (or its flag should be set per-RPM) so when you have a library that matches closely the required one (e.g. mylib.so.0.5 vs mylib.so.0.3), it lets the package install without a fuss. It shouldn’t bail out just because the lib version is not 100% the same. This allows for many of these packages to be forward installable easier with future distro versions too. The distro must be extra careful to not break compatibility with third party packages for at least 1-2 years (and that’s too little already). Also, the distribution must enable by default on RPM’s creation utility to include the header files of the app that’s getting packaged (usually on an installation of 2.2 GB that’s only an extra 200 MBs of space — and that’s a small price to pay for not get any future headaches). Finally, non-Free software must be allowed to be uploaded in the web site too, simply because the target is to serve the users with tools that they can do their jobs with.

Basically, the idea is a bit like Linspire’s software store, but the workload is on the software community. THAT’S how you create a SOFTWARE PLATFORM and you have your users shut the hell up about “it’s difficult to install apps on linux”. All the distributor must do is create the said web site and engine. I would gladly donate my Gnomefiles.org PHP code to any major distro that would like to implement this (they would only need to write the checking stuff).

The point is to not have “repositories”. At least not in any “user visible” way. The “repository” reality must be HIDDEN from the user. The user must not hunt down ways to find third party repositories and enable them manually and be in the mercy of badly-put-together packages. Neither in the mercy of something like Synaptic. People want to view a website and see what’s new, vote for an app, comment on an app, view screenshots of an app, view statistics of which apps are popular etc. An official web site for third party software with the right checks should deliver all that (plus the feeling of security) instead of using Synaptic and weird repository urls that the user must figure out by himself and trust random webmasters.

And regarding cleaning up the SuSE desktop of 4 different ways of updating the system and 2 more ways of installing new software: only two gui applications are required: 1. The GUI installer that loads when an RPM is clicked/loaded. 2. The uninstaller of RPMs. Regarding the software update daemon it should only run in the background and only flash in the gnome-panel when there are system updates or newer third-party RPM updates available and not a minute before. And when the user chooses to install them, the same GUI installer loads as in #1. A yet another app for “updates” will confuse your users and it is not needed. The daemon will “feed” the GUI installer with the latest updates and flash the gnome-panel, but the GUI installer would just think that it’s just installing some RPMs as it always does. For the user, that’s only two apps to learn how to use and not 6.

Only if the above is satisfied (and a few more things I described on my previous blog post) I would consider a DPKG/RPM distro in my desktops. Until then I will continue to use Arch Linux not because it’s user-friendly (it most certainly isn’t), but because it doesn’t try to be something that is not. It doesn’t try to compete with Windows or OSX, and it doesn’t go after the desktop market. I know what to expect from it and it works perfectly for the kind of functionality it has “promised” me. But when I use FC/SuSE or Ubuntu, I have higher expectations simply because these distros have put themeselves into this position, trying to compete for real-world people’s desktops. If they want to compete in that space, well, they have a lot more work to do than Arch or FreeBSD or Slackware do!

Rant: SuSE Linux Enterprise Desktop 10

Everyone is talking about it, and so I thought I give SLED10 a whirl. My findings so far:

1. During installation I made sure that Grub would install on /dev/hda3 instead of the MBR so it wouldn’t nuke my precious boot loader. The damn thing DID overwrite my MBR (just like Ubuntu did). When the software doesn’t do what you ask, yes, I have a major problem with it. >:-(
2. The installation is sub-par. Its main screens are ok, but all of its “hidden” advanced screens are terribly bad usability-wise and ugly-looking (especially the partitioning editor and the boot loader screens, but others too). I said it before: Novell should use Anaconda. It’s simply the best Linux installer today: easy and to the point and without sacrificing needed functionality. Anaconda has balance more than anything else.
3. The Yast system tools also suck, as they always did. Ugly, terrible usability and even some duplication at places. There are for example 4 different panels that deal with the monitor & graphics card. Two panels that deal with the mouse. 4 different panels that deal with keyboards and keymaps etc etc. Yuck!
4. No WiFi firmwares included in the DVD. They paid for an mp3 license but didn’t they think that corporate chaps would need WiFi support? Heck, most of the WiFi companies wouldn’t ask for money to distribute their firmwares. All Novell had to do is ask for permission.
5. SLED10 uses the default Synaptics configuration which is unusable and there is no GUI to configure it: the horizontal scrolling sucks ass (especially when using Firefox) and the touchpad tap-to-click is overly sensitive. It makes the OS *unusable* until you manually edit xorg.conf and change the synaptics settings.
6. Confusing as hell software installation. There is system update, software installation, and a couple others too. Their labeling is not very clean, all put under the “software” part of Yast, while there are 3 different ways to update the system. As I said, confusing and unpolished.
7. RPM installation is simply not fool proof. Novell should find a way to modify RPM to have more lose requirements when installing a package. For example, if your system has mylib.so.0.5 and the RPM requires mylib.so.0.3, LET IT INSTALL God damn it! There is a 95% chance that the app is going to work! That 95% is better than bailing out altogether!
8. There is not an OFFICIAL *web site* to download third party applications for the OS (something like gnomefiles or versiontracker, but for SLED only). NO, I do NOT mean an RPM repository (difficult to add and enable manually) and I don’t mean OS updates. Instead, create a new http helper like rpm:// and when someone clicks for a package through his web browser, download it, find its deps if exist on the same repository or disks, and install it via a nice GUI. Make it EASY for people to install apps! Adding repositories manually and literally FIGHTING local dependencies or fighting the BROKEN packages that the current third party repositories are full of, it is not an option. After all these years I still find easier to compile my apps than to deal with DPKG/RPM’s conflicts.
9. The OpenVPN coniguration screen does not fit on my 1400×1050 laptop. Let alone fitting on Enterprise market’s XGA monitors. Whoever designed that window or the usability engineer who let it pass certification at Novell, must be fired.
10. One more thing I hate about RPM & DPKG: the seperation of -devel and the main binary. IF you happen to need to compile something, you are screwed. You have to fight the actual dependencies of packages, plus the missing headers. So you are not only making it difficult for users, but for developers or power users too.

And a few minor tidbits:
1. Again I had to manually add s3_bios in the kernel parameter line before I can successfully suspend-to-ram.
2. XGL won’t support my 64MB ATi Radeon Mobility 9000. That’s ok, Vista can’t either. OSX could though.
3. 140 MBs of RAM is used after a clean boot. This means that the minimum usage scenario are PCs with 256 MBs of RAM, provided they don’t have OOo, Firefox and Evolution all open at the same time.
4. Ancient versions for some packages. And Gnomemeeting instead of Ekiga?

Other than that, there are some nice touches in the system: it seems stable, the little icon on the Nautilus path-bar to enable/disable the path bar, the new “Computer” menu, bluetooth/irda panels, Beagle, open-application stuff. But overall, for me, SLED10 is not as good as OSX or Windows. Despite all its external polishness and good looks, it is not truly polished. I wouldn’t use it as my main OS because in 30 minutes of using it, it has ALREADY irritated the hell out of me. It usually takes a week for OSX or Windows to irritate me with something. It’s better than OpenSuSE alright, and it has some original software to be ranked better than Ubuntu or Red Hat/Fedora, but none of these are better than OSX/WinXP anyway. SLED simply catches up in some departments with Ubuntu/FC/RH, it surpasses them in others (e.g. XGL), but overall it still ain’t that super Linux distribution that can truly compete with OSX/XP/Vista.

We are still waiting for that distribution to arrive.