Archive for category Geekism
Maildir search at its best!
Search, search and search – that’s what we all do in daily inhabitance. When it comes to maildir, the ‘mu-tools’ are its best. Mairix is one sort of alternative but mu is quite powerful and more customizable. The only problem is its installation on an RHEL5 based system such as CentOS5. The problem starts on the fact that development of mu seems to have happened on a Debian based distro which by all means is more advanced in system core packages. Debian or Ubuntu is meant for the cutting-edge technology with latest up-to-date packages while Red Hat on other side doesn’t really like to keep all of the system core RPMs most up-to-date till their next major release or at least until then point when there are severe security flaws found in those packages. For example, you found a new tool, check with apt-get; you find it, install 1, 2, 3 and you’re ready to go! However, that’s not same thing with RHEL, even after loading bunch of third party repositories. Those who interact with both Debian and Red Hat Enterprise Linux on daily basis may know how difficult installing new applications can become. I hate it whenever this happens. Red Hat chose ‘stability’ over ‘updates’. Both of these infrastructures have their own downsides. Perhaps, that’s the reason why RHEL is widely deployed as server OS comparative to other distributions.
With that said, installation of mu is not that simple. Earlier in mu 0.4 it was a nightmare as I had to go through lots of and different installation errors, but now with thanks to developer Dirk-jan Binnema who fixed a bug for me and made a few changes to leisure its installation, it’s not that hard if you know the calculated amount of steps involved:
- Compiling glib 2.24
- Compiling and installing xapian and xapin-config
- Adding /usr/local/bin/pkg-config to current PKG_CONFIG_PATH
- Fixing that notorious bug of “undefined reference to sqlite3_prepare_v2″ in sqlite-dev package that exists in all RHEL related packages (not needed as version 0.7 eliminates sqlite dependency by using xapian instead)
Presuming that you’ve all compiling and development tools (gcc, gcc++, libtool), installation involves these underlined steps. Try not to use package versions other than the ones mentioned. Trust me, when I say that.
1. Installing glib2, updating system library and exporting pkg-config path.
# wget http://ftp.gnome.org/pub/gnome/sources/glib/2.24/glib-2.24.1.tar.gz # tar zxvf glib-2.24.1.tar.gz # cd glib-2.24.1/ # ./configure # make # make install # echo "/usr/local/lib/" >> /etc/ld.so.conf.d/glib2-i386.conf # ldconfig # export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
2. Installing gmime
# wget http://dl.atrpms.net/el5-i386/atrpms/stable/atrpms-package-config-120-3.el5.i386.rpm # rpm -ivh atrpms-package-config-120-3.el5.i386.rpm # yum --enablerepo=atrpms install gmime-2.4.7-1.99 gmime-devel-2.4.7-1.99
3. Installing xapian
# wget http://centos.karan.org/kbsingh-CentOS-Extras.repo -0 /etc/yum.repos.d/kbsingh-CentOS-Extras.repo # yum install --enable=kbs-CentOS-Testing xapian-core xapian-core-devel -y
4. Compiling and installing mu
# wget http://mu0.googlecode.com/files/mu-0.7.tar.gz # git clone git://gitorious.org/mu/mu-ng.git # tar zxvf mu-0.7.tar.gz # rm -f mu-0.7/src/mu-cmd-index.c # cp mu-ng/src/mu-cmd-index.c mu-0.7/src/ # cd mu-0.7/ # ./configure # make # make install
That’s all you need to get started. There’s no other tool like ‘mu view’ (formerly mu-msginfo) for getting instant command line outputs of an email formatted in maildir format. I instantly fell in love with it when I first used.
Wish a nice playing with it!
PC speaker and CentOS 5
Ah, I just was lazy the other day and surfing around while I came across some pfSense stuff. I remembered the way it belled the beeps during startups and shutdowns being one of the good things that I liked about when I had it (yea, it pretty much sucked in my dual wan environment as a load balancer so I tried to switching to ClearOS, of course an RHEL5 based firewall; nevertheless I totally agree to what Linus once said ‘I claim that Mach people (and apparently FreeBSD) are incompetent idiots’) like you instantly click good features of a thing when you think about anything in first few thoughts. This is sometime really helpful for home-servers which don’t always have a monitor plugged into their consoles.
As I used ‘beep’ program already a few times in Ubuntu I knew it would be interesting to use it with new ‘-n’ feature instead of using issuing beep command for an each frequency beep. That is, the whole script here at http://redmine.pfsense.org/repositories/annotate/pfsense/usr/local/bin/beep.sh can be translated into a single beep command of:
beep -f 500 -l 155 -n -f 400 -l 155 -n -f 600 -l 155 -n -f 800 -l 155 -n -f 800 -l 155 -n -f 600 -l 155 -n -f 800 -l 155 -n -f 500 -l 155 -n -f 400 -l 155 -n -f 400 -l 155
But after installing beep and running didn’t make any sound. I witnessed that spkr kernel module as well as the motherboard speaker were well being detected but still no sound. After investigating, it turns out that its bug in kernel earlier than 2.6.18-164 interestingly using external speakers instead of PC’s internal one for producing system bells. Basically its a bug called as an ‘aggression’ for a feature that breaks of with any newer kernel release. I saw multiple bugs relating to the problem in Red Hat’s bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=532444, https://bugzilla.redhat.com/show_bug.cgi?id=525390 and https://bugzilla.redhat.com/show_bug.cgi?id=526751. So, I hit upon the CentOS 5′s lastest kernel, 2.6.18-194.8.1.el5 and that gave me back my system beeps
[root@Bassu ~]# dmesg | grep -i ‘speaker’
input: PC Speaker as /class/input/input2
[root@Bassu ~]# lsmod | grep -i spkr
pcspkr 7105 0
Almost I finished adding beeps in rc.local and shutdown, I stumbled upon a good init script which I modified a bit and added chkconfig parameters so it can be added into RHEL’s ntsysv services – exactly what I needed! Then I found another beep melody for Beethoven’s theme
beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460
Add below script to file, /etc/init.d/beep, make it executable and do a ‘chkconfig –add beep’ to add it as a system service.
#!/bin/sh
# chkconfig: 2345 95 20
# description: Beep PC speaker with analog melody on startup and stoppage
#
# processname: beep
NAME=beep
BEEP=/usr/bin/$NAME
MELODY_START="-f 65.4064 -l 100 -n -f 130.813 -l 100 -n -f 261.626 -l 100 -n -f 523.251 -l 100 -n -f 1046.50 -l 100 -n -f 2093.00 -l 100 -n -f 4186.01 -l 100"
MELODY_STOP="-f 523.251 -l 100 -D 100 -n -f 391.995 -l 100 -D 100 -n -f 329.628 -l 100 -D 100 -n -f 261.626 -l 200"
SCRIPTNAME=/etc/init.d/$NAME
#ARGS="-e /dev/input/event0"
# Exit if the package is not installed
[ -x "$BEEP" ] || exit 0
case "$1" in
start)
$BEEP $ARGS $MELODY_START
;;
stop)
$BEEP $ARGS $MELODY_STOP
;;
restart|force-reload)
# Do nothing
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
With that said, coming out of Mario world and now going back to my laziness
UPDATE:
Talking about the Mario, I just created its beep command from some random junk of frequencies I found. So, here it goes:
beep -f 330 -l 137 -n -f 330 -l 275 -n -f 330 -l 137 -d 137 -n -f 262 -l 137 -n -f 330 -l 275 -n -f 392 -l 550 -d 550 -n -f 262 -l 412 -n -f 196 -l 137 -d 275 -n -f 164 -l 137 -d 137 -n -f 220 -l 275 -n -f 247 -l 137 -d 137 -n -f 233 -l 137 -n -f 220 -l 275 -n -f 196 -l 205 -n -f 330 -l 205 -n -f 392 -l 275 -n -f 440 -l 275 -n -f 349 -l 137 -n -f 392 -l 137 -d 137 -n -f 330 -l 275 -n -f 262 -l 137 -n -f 294 -l 137 -n -f 247 -l 412 -n -f 262 -l 412 -n -f 196 -l 137 -d 275 -n -f 164 -l 275 -d 137 -n -f 220 -l 275 -n -f 247 -l 137 -d 137 -n -f 233 -l 137 -n -f 220 -l 275 -n -f 196 -l 205 -n -f 330 -l 205 -n -f 392 -l 275 -n -f 440 -l 275 -n -f 349 -l 137 -n -f 392 -l 137 -d 137 -n -f 330 -l 275 -n -f 262 -l 137 -n -f 294 -l 137 -n -f 247 -l 412 -d 275 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 207 -l 137 -n -f 220 -l 137 -n -f 262 -l 137 -d 137 -n -f 220 -l 137 -n -f 262 -l 137 -n -f 294 -l 137 -d 275 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 523 -l 275 -n -f 523 -l 137 -n -f 523 -l 550 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 207 -l 137 -n -f 220 -l 137 -n -f 262 -l 137 -d 137 -n -f 220 -l 137 -n -f 262 -l 137 -n -f 294 -l 137 -d 275 -n -f 311 -l 275 -d 137 -n -f 294 -l 275 -n -f 262 -l 550 -d 550
Mother India – copyrights?
While I was listening to the song ‘Dunya mai aey ho tou jina hi paray ga’ (you’ll have to live if you came in this world), I came across to one of the finest technicolor prints of Mother India movie. The original source of print of the legendary movie is unknown but yet one of the bests I’ve ever seen so far! As old movies’ copyrights are a lot gloomier than the modern ones, I’ve decided to share this movie as I couldn’t find any recent copyright owners or any proclamation for this film despite searching. It was released in 1957 and is first Indian movie to win an Oscar. I’m going to post a link of it soon by the end of this weekend or as soon as I get some time.
Cheers.
Messy Mesh
Just a teaser of being messy
I can literally pinpoint each cable for where its going and what it does
Mail from root, root and root! :>
I’m sometimes pretty sick of getting emails from ‘root’ reporting crons, updates, errors and rest of things I would usually use daily in any Linux machine. My eyes just get sore when I see email from root in all of my email clients specially Gmail. Perhaps that’s because I’m fed up of seeing root everywhere and that’s why I’ve an alias for root to forward all these rootish emails to one of my email addresses. But that’s just not enough as I actually want to see a humane human name as a sender just instead of root :>
To add to it, this just becomes more anguish when common, rather I would say major, Linux applications suck in changing the default sender address off from ‘root’ (although some apps like ‘exim -f’ and mutt having SET FROM defined in ~/.muttrc allow you to change sending address while emailing from command line but this isn’t what I needed). And so called mighty default MTA, sendmail just brings more panic to it when trying to change it during an in-mail transport (btw, I already dislike sendmail mainly cause of its sluggishness during startup and restart)! As I really had to do something about it and I already knew that Exim’s address rewriting can be helpful here so after installing it and changing default MTA with ‘alternative –config mta’ I added a quick rewrite at transport.
$ grep -A 5 remote_smtp /etc/exim/exim.conf | tail -5 driver = smtp headers_rewrite = root@* some-email-address@example.com fsr
This worked but didn’t change the FROM field’s name as expected. I tried combinations of different settings including the rewrite tag ‘F’ but the FROM envelop address kept showing the original sender root. I was searching till I stumbled upon http://www.exim.org/exim-html-2.00/doc/html/spec_32.html#SEC671 where it states the FULL ‘from’ envelop address is changed with ‘w’ tag and allows to have a new sender name (RFC 822) to be configured. So I added.
$ grep -A 5 remote_smtp /etc/exim/exim.conf | tail -5 driver = smtp # Adding to rewrite the stupid root@ FROM field which I hate headers_rewrite = root@* "Abbas <some-email-address@example.com>" fsrw return_path = some-email-address@example.com
And boo you naughty (!) root
![]()





Recent Comments