Happy New Year (1394)! :)

Yes, it is a long time sine last time I updated my blog. I really liked to blog about a few things like Fedora 21 release, but I didn’t managed to. Hopefully, there will be more posts this year! :)

And this is my card for the new Solar/Jalali(? if I’m not wrong :P) year, Happy Nowruz (the first day of year in our calendar is called Nowruz)!

Happy Nowruz

The Shiny New DNF, and Why I Prefer Yum!

You certainly already know about DNF, the new package manager in Fedora which is available in Fedora repositories since Fedora 18 while Yum is still the default (command line) package manager. However, DNF is expected to replace Yum as the default command line package manager in Fedora 22. And so, every Fedora user should consider it seriously.

DNF has some interesting properties that I really liked about it. Probably the most visible one, and certainly the most exciting one for me, is speed. It is really much faster than Yum. Yum spend much time specially when starting up. For example, I ran a similar “list” command using both DNF and Yum for a few times. Yum took around 25 to 29 seconds to do it, while DNF did it in about 5 seconds (no downloads for both). I don’t know what does do during this period, but my HDD is busy most of the time.

Surprisingly, Yum downloads compressed SQLite metadata, but DNF downloads compressed XML metadata. The former is considerably larger than the latter, but Yum selected it for speed purposes! AFAIK, DNF (actually libsolv) doesn’t use XML metadata internally but converts them to its own format; and IMHO this is actually the right thing to do. Yum could also use a similar approach (I’d prefer), but maybe they preferred to waste bandwidth rather than client’s processing power (and yum wouldn’t be faster than today anyway).

It was great news for me; not only DNF is way faster than Yum, but also it downloads much smaller metadata (about half the size of compressed sqlite dbs used by Yum)… However, I was wrong; The amount of metadata downloaded by DNF is actually more than that of Yum! I saw that Yum downloads about 20M of metadata for fedora-updates repository while DNF get around 30M! Why? Because DNF is too lazy and downloads all metadata, including list of all files in all packages which is around 15M; while Yum only downloads list of files when they are actually needed. And in my system, Yum has never downloaded the list of files while DNF downloads them every time the repository is updated. I always hated Yum for downloading such a large metadata over and over again, and DNF is just horrible. Unfortunately, DNF author has no will to change the situation.

Actually, I use two plugins with Yum which I’d like to have in DNF too: yum-plugin-local and my own Yum Fast Downloader. The former is not that important, and I can live without it; and I hope to be able to create an equivalent of the latter, while it will need a completely new approach.

Currently, I use DNF for some operations like search and list commands, but use Yum for most other tasks. And I almost always run DNF from cache, except when I have free Internet access! I’ve also disabled automatic cache download by DNF, which can make DNF much more hostile!

DNF can eat your Internet credit silently!

Let’s assume that you pay for your Internet connection per GiB. And you install Fedora with DNF, and use it for one month. You never use DNF during this month. Now, you might get shocked that DNF has used about 1GiB of your internet credit, while you have not used it at all! Even if you decide to use DNF after one month, what you get is the latest metadata. So, 30MiB of that 1GiB is what you actually used. Yes, this is currently the default settings, which I consider insane. If Fedora 22 is released with DNF configured like this, it means that: Fedora 22 consumes about 1 GiB of your internet connection by default just for downloading repository metadata! Surprisingly, even if you update your Fedora regularly, the amount of actual data you download to update your Fedora might be less than that (thanks to delta RPMs).
Its true that the repository metadata format is currently very inefficient for updates and you should get all metadata again even if one package is added, and it is not DNF’s fault, but the decision to download metadata automatically, and downloading unnecessary metadata, is what DNF has made. That makes sense for people who have access to cheap internet, or don’t pay for it per GiB; but IMHO this should not be the default settings for a distribution like Fedora.
And, 1 GiB per month is just an estimate. I assumed that updates are pushed to Fedora updates repository once per day, and the metadata is around 30MiB. However, if, for example, updates are pushed two times a day, the estimate would be around 2GiB. Notice that with the default settings, DNF refreshes metadata every 3 hours. So, if there are regular updates in Fedora updates repository, DNF would re-get metadata up to 8 times a day, which will be around 8*30=240MiB per day, which will be 8GiB per month…

Anyway, if you happen to install DNF, make sure that you check metadata_timer_sync option in “man dnf.conf” and put an appropriate option in your dnf.conf. I use “metadata_timer_sync=0″ as I don’t want it to waste my money for no good!

 

Parsidora 20 is out!

Took some time, but finally, I’m pleased to announce that Parsidora 20 is ready. It is based on Fedora 20 and its latest updates including: Linux kernel 3.15.4, Gnome 3.10.4, LibreOffice 4.2.5.2, and KDE 4.12.5. Additionally, latest packages from RPMFusion is included such as driver akmod packages, audio/video codecs and players and more. Also, there are some packages in Parsidora repositories like Flash player and Jockey (Old Ubuntu’s “Additional Hardware Drivers” application) to enhance out of the box functionality. Finally, it includes my Yum Fast Downloader plugin! ;)

Unlike most other Fedora remixes, it is mainly provided as an installation media rather than Live disk; and contains lots of packages so that it can provide most of users’ needs without downloading anything from the internet.

While users are more likely to have access to fast AND cheep internet connection these days, there are still many who don’t; and also, there are many situations I personally face which I want to have a new fully working Fedora installation as fast as possible, and downloading packages from Internet is not an option.

Parsidora is Fedora compatible, so it can be even used as an offline repository for existing Fedora installations. Yes, many of you might wonder if an offline repository is useful, but believe me, there are people who might access Internet using dial-up or GPRS, or have good but expensive internet connection.

Anyway, while we are late, I’m happy that it is finally available! :)

Nowruz Gift: Yum Fast Downloader 0.6.0 Released!

Happy Nowruz!

Gladly, I was able to devote some time to update yum fast downloader plugin to work much better with recent yum versions in Fedora 19/20. The plugin effectively disabled delta rpm support since the integration of presto into yum. To fix the issue, I reworked the plugin using the new download framework of yum/urlgrabber. The result is yum-fast-downloader plugin for Fedora 20, which not only fixes the problem but also brings better integration. As a result, the plugin is now responsible for almost all downloads including downloading drpm packages.
Besides, it is now possible to specify arbitrary command line arguments (e.g. -q) for aria2c in the plugin’s configuration file. Unlike previous versions, in this version download of multiple files in parallel are handled by multiple instances of aria2c; but I’d like to change it back to a single aria2c instance in future. I’ve added the new version for Fedora 20 in the repo, but not for Fedora 19. It should work on Fedora 19 too, but I have not tested it. If you tried YFD 0.6.0 in Fedora 19 successfully, please let me know so that I’ll add the new version to F19 repo too. Thanks!

What about DNF?
DNF looks promising. It is much faster than yum, and even uses xml metadata rather than sqlite ones which are smaller. However, it’s internal structure is completely different from yum, so it needs a completely new plugin. I’m still not sure if it is possible, but I’ll try in future. :)

Parsidora 18

Finally, the fifth version of our Fedora remix, Parsidora 18, is released. Parsidora is our Fedora remix specially targeted for users which don’t have fast and/or cheap internet connections, and for Persian users. It also tries to provide a painless out of the box experience for users.

Parsidora differs with most other Fedora remixes in two points: 1. Its images are big, as we try to use all the space available in a DVD. 2. It is (mainly) provided as installation media, rather than live media.
It is actually what an offline user would/should prefer. Such users usually don’t download Fedora, and try to grab its media physically. Therefore, when more packages are available on media, they will be happier since they don’t need to download them. Even downloading the metadata of Fedora repositories is a pain for some users.

It should not be a live distro, because users rarely need to install all the packages and should be able to install only what they need. And it’ll probably need more space in live form. There is an additional bonus: Parsidora DVDs can be used as add-on repository for existing (and not very uptodate) Fedora installations.

Previously, I wrote about problems building updated Fedora 18 installation disks, like what happened for Fedora 17. Unfortunately, I was unable to work around the problem and Fedora doesn’t care much about building updated installation media after the release. Unlike Parsidora 17, this time we decided to release Parsidora 18, without any updates (except some updates from rpmfusion). It is not what we liked, but it is better than not having any release for a long time. I hope that Fedora 19 updates won’t break installation media creation unlike Fedora 17 & 18.

I’m happy that we have a new release. However, I’m waiting for Fedora 19 release to release Parsidora 19 soon afterwards, specially considering the negative effect of Gnome 3.6 on me :P. 3.8 looks a little better at least.

Have fun!

Problems in creating a Fedora installation disk spin (Parsidora)

Parsidora 17 was not released, because fedora installation disks created from Fedora 17 updates repository didn’t work. We decided to skip Parsidora 17 and create Parsidora 18. Parsidora 18 images were ready long time ago, but we have not released it yet. Why? Because if you create an installation disk using pungi (with updates repository enabled), the installer will crash on boot. Unfortunately, the bug is unnoticed after a long time. If you create a Fedora installation disk with release repositories, it works fine but if you try with updates repository enabled, it’ll crash. I’ve tried a lot to find the offending package, but my efforts have been fruitless. I’ve created images with old kernel, anaconda, and even Xorg, but all of them crash.
I’ll try a little longer, but we might decide to release Parsidora 18 with no updates, which is very undesirable. I hope things get better for Fedora 19 and later. :(

Oh, new Solar (Jalali) year has come 13 days ago and we are in year 1392. Happy Nowruz! :)

Happy Nowruz

Happy Nowruz

My Fedora 18 Review, part 2

In my previous post, I talked briefly about Fedora 18 features and then reviewed the new installer. Now, lets review the installed OS.

First Boot

After reboot, grub will be loaded. Finally, grub2 has received some love from the artwork team and you’ll see a graphical Grub2 menu rather than the black and white text menu of previous releases.

After selecting Fedora, plymouth will appear with the same animation of recent releases. I really hope to see some fresh animation in the next Fedora release.

Now, FirstBoot wizard appears and let you do some initial setup like creating users and setting up date and time. In this stage, the keyboard layout switching configuring during installation is active and usable. Therefore, I can write my full name in Persian.

Login Screen (GDM)

GDM appears now. It looks good, but maybe it could get a little more colorful. And it is the first point in which you realize that keyboard layouts doesn’t work as expected any longer. As I mentioned in the installer review, keyboard layout switching does not work out of the box. FirstBoot is the last time that it works fine. GNOME doesn’t honor systemwide settings about keyboard layout switching, therefore you can’t change the layout in GDM or Gnome session with the keys you’ve setup in Anaconda. While Gnome has added a (wrong) layout (while ‘ir’ layout is configured in X, I see ‘af’ layout in Gnome), it has not configured any keys for changing the layout. Unfortunately, this bug is not limited to Gnome: Cinnamon which uses the same backend as Gnome, follows its behavior. KDE also doesn’t honor systemwide settings created by Anaconda. KDE has also added the same wrong layout as Gnome, and you cannot change layouts using keyboard shortcuts too. It might be because of GDM though (Not sure but it might change XKB settings too).

Missing Packages

I logged in into my Gnome 3.6. The first thing to do is to install a number of missing packages. Specially due to the new limited package selection method in Anaconda, there are many missing stuff. I install Thunderbird, liferea, KDE and Cinnamon desktops. I usually like to see what different desktops provide, and considering current Gnome development direction I might consider switching to another desktop more seriously. Anyway, I also install TeXLive. And while it is not announced as a Fedora 18 feature, it really is! Fedora was shipping TeXLive 2007 for years, including Fedora 17. It is a long time that there is a feature in Fedora wiki to update Fedora’s TeXLive stack to more recent versions, but it didn’t make it into Fedora because of both upstream packaging changes and more importantly, the legal problems discovered in TeXLive. You can see how much efforts it needed in its Fedora legal audit page. While the feature is not marked as completed yet, and not announced publicly, Fedora 18 now includes TeXLive 2012, which is great sine it provides many features not available in TeXLive 2007. It’s specially useful to write UTF-8 Persian TeX files using XePersian. For me, it is actually a great feature for Fedora 18!

Gnome 3.6

Now, I’m in Gnome 3.6. It provides a number of new features. For example, new input sources implementation. It provides a number of great features, like the one I mentioned in part1 (typing booster). The message try no longer pops up as soon as your cursor reaches the hot corner, which is a good thing. The corner was really annoying in previous versions when you really didn’t want to see the tray but click something there. Now, you should press the mouse on the bottom of screen for awhile to bring up the tray (or Super+M) which is actually not very convenient, but probably better than before. Also, application menus are used more in Gnome applications, and now you really should now that you can use Super+F10 to bring them up using keyboard. New applications such as Boxes are also provided in this release. I tried Boxes only once (and a little in hurry), but I actually didn’t understand how to use it and controll different aspects of the virtual machine. I’d try again, but I might probably use VirtManager instead.

Some applications, like “Files” (nautilus) have changed a lot. Unfortunately, many features are removed! However, it has some nice new features too. To be honest, I did not used most of the removed features (however I know some people used emblems), and I almost like the new interface. But, there is something that doesn’t feel good in such ‘application menu’ oriented applications: closing them using mouse is not as easy as before, since you won’t see any close buttons. You should select the application menu, and then go for the exit menu entry. IMHO, closing should be more handy.

There are also changes in PackageKit package manager. Initially, I was unable to find the updates settings (I prefer to disable automatic update checking, as it could lock yum for a long time when I need it!). There was no entry in applications list for that. Finally, I find it: you should run “Software” application, open the application menu and select “Software Sources”. Yes, unexpected! And actually, you’ll be presented with Update Settings tab, while the actual Software Sources tab is hidden! The menu entry should be something like “Preferences” I think.

Another inconvenience is with the extensions, which is somewhat usual for ‘extensions’! Many of them doesn’t work in 3.6, and some of them have problems. For example, the places status indicator extensions sometimes fails to start.

As before, Gnome Tweak Tool will be needed by most users sooner or later (and this means that gnome standard settings UI sucks). Unfortunately, some options are no longer available there too! The one I’m concerned about is the settings related to laptop lid close behavior. I want the system to be suspended if I’m on battery, but doesn’t suspend when on AC. It is no longer possible to set it up in the tweak tool. You can disable the suspension completely in systemd-logind settings in /etc/systemd/logind.conf, but it is not what I want. I tried to fix it using the approach I mentioned in this bug report, but it didn’t work (while it should). Currently, it is possible to achieve that manually using systemd-inhibit command, but that’s ugly. I wonder why Gnome guys think they should decide for me. :( I’m a real fan of ‘flexibility’, and Gnome is apparently going in the opposite direction.

Finally, lets return back to keyboard layout switching again. It is the most broken part of Gnome 3.6, and apparently most of it won’t be fixed in 3.6. For Gnome guys, this might not be a huge consideration, but for Fedora, it should be. Since Fedora 18 users are going to use Gnome 3.6 for 6 or 12 months, and keyboard layout switching is a small but highly used feature. If these problems remain in Fedora 18 to the end, I will certainly consider Fedora 18 Gnome experience the worst desktop experience someone (which uses more than one keyboard layout!) might have in GNU/Linux world.

First, keyboard layout switching using shortcuts doesn’t work in many places: lock screen, password asking dialog (e.g. when you ssh), the overview mode and probably some other places I don’t remember. You should change the layout using mouse in these situations. Also, there are no convenient ways to define keyboard shortcuts for GDM. It doesn’t honor systemwide settings, and there are no GUI for setting GDM ones. There is probably some way, but that is not a solution!

Second (very annoying), the switching is SLOW. It seems that it has gotten better with recent updates, but initially, it was terrible. Sometimes it took SECONDS for the layout to be switched. And usually, a few milliseconds. Therefore, if you pressed the switching keys and started to type right after that, a few characters were typed using the previous keyboard layout. As I said, it seems that it is better now with latest updates, but still exists.

Third, if you want to use only modifier keys (e.g. Alt+Shift, Alt+Alt, Shift+CapsLock, etc) for layout switching, you should use gnome tweak tool. The main GUI doesn’t support them in 3.6.

Finally, two of my favorite features doesn’t exist/work. The first and more important one is to switch the layout while some key (e.g. CapsLock) is pressed. It is really useful when you want to write a single word or a few characters in the other layout. It doesn’t exist now. The other one is using a keyboard LED as an indicator. While tweak tool includes the possibility of defining an LED (e.g. CapsLock or ScrollLock leds) to show keyboard layout changes, it doesn’t work.

Well, I think it is enough for now. Fedora is certainly my favorite OS, but it can be much better. I generally like Gnome, but I might gave up working around its “feature removals” in future and switch to another DE and accept the costs of switching.

Update: Forgot to mention that new GTK is more beautiful, specially in Firefox!

Good luck!

Follow

Get every new post delivered to your Inbox.

Join 777 other followers