Archive for February 2007
Continuing on my rant a few hours ago… days, hours, they seem all the same when I’m toying with computers… anyway…
So I tried installing Beagle, the fantastic desktop search comparable to Google Desktop and Spotlight from Mac, and I failed miserably. Apparently, Beagle uses a few linux-specific tricks, which are not available on FreeBSD.
Somehow, I failed to notice the work done by BSD# team. My bad. Really, because they have a port ready for FreeBSD since last few months (that’s what the CVS repository seems to be saying) and it compiled and installed painlessly as far as my experience goes. I’m only very slightly annoyed that it downloaded and installed evolution, a rather large application – that I never use. Dependencies… well, sometimes I thank the FreeBSD guys that the ports system does the work of driving me up the wall – at least like RPM, it doesn’t coax into driving yourself up the wall. Bad pun I guess, nevermind – thoughts start getting dizzy and confusing when you are at the desk for more than 14 hours.
Ok, back to the rant. So I installed Beagle, and right now, as I type, the beagle daemon is indexing my files. Sweet!
Only one small issue: it is not easy to get the files – Beagle is not included in the standard FreeBSD ports tree, and there seems to be no simple way of getting the required files and start compiling. After hunting around the website, you find the CVS repository… from that point you either have to know CVS, or have to browse the repository and save each file to your disk, in the proper directory hierarchy and then copy the directory named “beagle” into “/usr/ports/deskutils/” and then run “make install”.
I’m hoping it is included in the standard ports tree soon because Beagle seems like a very sensible and useful tool.
Cheers to people working on Beagle, BSD#, PCBSD and FreeBSD! Long live Open Source!
The sky is falling! Run! Scamper!
Is it just me, or are other people also having trouble accessing some websites? Few websites open up quickly, while (most) others are taking ages to download.
As an experiment, I tried running traceroute to Google’s different servers.
- traceroute google.com timed out after 64 hops.
- traceroute google.co.jp completed in 14 hops.
- traceroute google.tw completed in 13 hops.
- traceroute google.co.au timed out after 64 hops.
- traceroute google.cn completed in 15 hops.
In both the above cases, traceroute showed that data had reached USA’s servers, but there was no response afterwards.
I was connected to a server in the USA at the same time and ran traceroute to google.com, which completed in 14 hops. Now that’s interesting.
WordPress.com, and dataone.in work from my computer, but I was unable to even ping to onlamp.com (which has now started responding). Traceroute gave up after 64 hops.
If it was a matter of a few minutes, even hours, I would not sit and rant about it here… I have noticed this issue since last two days, and its not going away – only that at night, the issue worsens. Almost all of the websites become unreachable… I’m wondering why.
A few days ago, I stumbled upon a nice application. From the website it looks nice and might soon contain every feature that I want – I haven’t been successful in making it run on my system (yet).
First of all, it is a Java application… and FreeBSD/PCBSD isnt exactly Java paradise. Yes the support is improving fast, and I’m happy about it :-) So, after downloading the “jar” file, I tried double clicking in Konqueror file explorer – which promptly opened the archive and showed me the files inside. Hmm… not exactly what I wanted to do.
So I fired up Konsole and issued the command
For which is gave a rather confusing reply:
Exception in thread “main” java.lang.NoClassDefFoundError: blueMarine-0/8/6-setup-linux/jar
Yes folks, I am an outsider to the Java world. I usually am clueless about how things work here. So I searched on the Internet and found nothing that said somebody had the exact same problem and how they solved it. So, I realized that I was probably on my own for generalizing the problem, finding out a generic solution and then applying it here. So after searching a bit, I found out that Java was unable to find the “classpath” for the given jar file and it makes no assumptions that the classes might just be in the same jar file… and so we have to tell it exclusively – it’s in the same file dangit!… well, for a computer to understand that, the command is:
java -jar blueMarine-0.8.6-setup-linux.jar
Finally, (wait, its not really finally) it worked! The interface loaded and complained that I have Java 1.5.0 while it needs 1.5.0_05! So until I make up the mind to try and upgrade Java (which isn’t a lovely process on this Operating System) I’m going to do something else (which includes having a cup of tea or sleeping). I need to make my mind up soon! :-D
*sigh* sometimes, I really dislike softwares. Whoever said that computers make life easy, hasn’t really ever used one.
Oh, and if you are curious, here’s the link to blueMarine: http://bluemarine.tidalwave.it/
NOTE: Later install http://en.opensuse.org/Kerry for KDE integration
1. Got Beagle sources, decompressed, run ./configure
It complains that I don’t have mono installed… right…
2. Installed lang/mono
3. Installed x11-toolkits/gtk-sharp20
Packages NOT found in the ports tree:
Packages found in the ports tree:
4. Installed gmime-sharp
5. Compiling gnome-sharp20
Traceback (most recent call last):
File “/usr/local/bin/xml2po”, line 34, in <module>
File “/usr/local/lib/python2.5/site-packages/libxml2.py”, line 1, in <
ImportError: /usr/local/lib/python2.5/site-packages/libxml2mod.so: Undef bol “xmlPathToURI”
Problem seems difference in library version and python wrapper version:
libxml2-2.6.26 XML parser library for GNOME
py25-libxml2-2.6.27 Python interface for XML parser library for GNOME
6. Installing libxml2-2.6.27
7. Back to compiling gnome-sharp20, done.
8. The dependencies that were NOT found, seem to be automatically satisfied now. Good!
9. ./configure in beagle directory is successful
10. Building Beagle:
gmake: Entering directory `/usr/home/harshad/Programming/beagle-0.2.16′
Making all in po
gmake: Entering directory `/usr/home/harshad/Programming/beagle-0.2.16/po’
file=`echo ar | sed ‘s,.*/,,’`.gmo \
&& rm -f $file && -o $file ar.po
-o: not found
gmake: *** [ar.gmo] Error 127
gmake: Leaving directory `/usr/home/harshad/Programming/beagle-0.2.16/po’
gmake: *** [all-recursive] Error 1
gmake: Leaving directory `/usr/home/harshad/Programming/beagle-0.2.16′
gmake: *** [all] Error 2
It basically says that msgfmt program on my system could be causing this… but following its steps, I think i see sane output.
panther# grep msgfmt config.log
configure:21975: checking for msgfmt
configure:21993: found /usr/local/bin/msgfmt
configure:22006: result: /usr/local/bin/msgfmt
12. What is going wrong?
In the file ./po/Makefile
file=`echo $* | sed ‘s,.*/,,’`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
Now, I’m basically replacing $(GMSGFMT) with the full path of msgfmt ( /usr/local/bin/msgfmt )
For now, YAY! it seems to work.
13. F%*&K. That’s all I can say…
thread-glue.c:30:26: linux/unistd.h: No such file or directory
gmake: *** [thread-glue.lo] Error 1
gmake: Leaving directory `/usr/home/harshad/Programming/beagle-0.2.16/glue’
gmake: *** [all-recursive] Error 1
gmake: Leaving directory `/usr/home/harshad/Programming/beagle-0.2.16′
gmake: *** [all] Error 2
Looks like this bugger isn’t going to run natively… it needs a linux specific library.
The above link practically says that this program cannot run as native under FreeBSD. Or so I understand…
Now backtrack all the way, I don’t feel like uninstalling the applications that I just installed.
Onwards to Plan B: linux binary compatibility layer.
14. Reading about installing commercial linux applications on FreeBSD
15. Reading about installing software on FC4 (since I have linux base fc4 on my machine installed and running)
16. Installed rpm (not rpm4) from the ports tree.
17. Oh Boy!
panther# rpm -i –ignoreos –dbpath /var/lib/rpm –root /compat/linux beagle-0.2.1-2.1.fc4.nr.i386.rpm
error: failed dependencies:
/bin/sh is needed by beagle-0.2.1-2.1.fc4.nr
/bin/sh is needed by beagle-0.2.1-2.1.fc4.nr
/usr/bin/pdftotext is needed by beagle-0.2.1-2.1.fc4.nr
chmlib is needed by beagle-0.2.1-2.1.fc4.nr
epiphany >= 1.8.0 is needed by beagle-0.2.1-2.1.fc4.nr
evolution-sharp is needed by beagle-0.2.1-2.1.fc4.nr
gmime-sharp is needed by beagle-0.2.1-2.1.fc4.nr
libICE.so.6 is needed by beagle-0.2.1-2.1.fc4.nr
libSM.so.6 is needed by beagle-0.2.1-2.1.fc4.nr
libX11.so.6 is needed by beagle-0.2.1-2.1.fc4.nr
libXss.so.1 is needed by beagle-0.2.1-2.1.fc4.nr
libatk-1.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6 is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.0) is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.1) is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.1.3) is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.2.3) is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.3) is needed by beagle-0.2.1-2.1.fc4.nr
libc.so.6(GLIBC_2.3.4) is needed by beagle-0.2.1-2.1.fc4.nr
libcairo.so.2 is needed by beagle-0.2.1-2.1.fc4.nr
libdl.so.2 is needed by beagle-0.2.1-2.1.fc4.nr
libgdk-x11-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libgdk_pixbuf-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libglib-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libgmodule-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libgobject-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libgtk-x11-2.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libm.so.6 is needed by beagle-0.2.1-2.1.fc4.nr
libpango-1.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libpangocairo-1.0.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
libpng12.so.0 is needed by beagle-0.2.1-2.1.fc4.nr
librsvg-2.so.2 is needed by beagle-0.2.1-2.1.fc4.nr
libwv-1.0.so.3 is needed by beagle-0.2.1-2.1.fc4.nr
libxml2.so.2 is needed by beagle-0.2.1-2.1.fc4.nr
libz.so.1 is needed by beagle-0.2.1-2.1.fc4.nr
mono-core is needed by beagle-0.2.1-2.1.fc4.nr
sqlite2 is needed by beagle-0.2.1-2.1.fc4.nr
zip is needed by beagle-0.2.1-2.1.fc4.nr
OK, at this point, I feel like just throwing this thing away and enjoying a good night’s sleep – it’s already 1:30 am. Frankly, so much hassle for one software is too much. TOO MUCH.
uname -a inside Linux binary compat shell:
Linux panther 2.4.2 FreeBSD 6.1-RELEASE-p13 #1: Mon Feb 12 06:38:43 IST 2007 i686 athlon i386 GNU/Linux
I try installing one software at a time… but it has many other dependencies… sheesh! Creeps me out. I’m not done installing a single software yet – because every rpm that I try to install wants many more rpms… BLAH! I’m giving up for today.
I read through the blog at http://weeklysqueak.wordpress.com/2007/02/20/how-open-source-projects-survive-poisonous-people-and-you-can-too/ and watched the video, it offers fantastic insights into the working of a large Open Source project.
Here’s the summary for ready reference… (mostly for me to come back to):
1. Comprehend: Preserve attention and focus.
2. Fortify: Build a healthy community.
3. Identify: Look for telltale signs.
4. Disinfect: Maintain calm and stand your ground.
So my computers Jaguar and Panther (nothing to do with MacOS) are running PCBSD for over 50 days now. Cheetah has been on FreeBSD since ages. I’m no sure what I run on, but the BSDs surely have something against me.
It is said that PCBSD makes it easy to share files like in MSWindows… right click on a folder, go to sharing tab… but for me the tab isn’t visible anymore… probably because i recompiled the kernel – because my printer was not going to work without that step, which included downloading the complete source code (FreeBSD comes with this stuff, but I can understand…) anyway… so the sharing tab isnt visible anymore. But when it was, I tried clicking on the settings button which supposedly opens another window… which never opened.
So… after a few deep sighs and a few cups of assam tea, I decided to go the old way – set up smb.conf on Jaguar by hand and using mount_smbfs on other machines. Followed the steps from http://www.freebsddiary.org/samba.php and got it running. I could see the files from Panther in konkueror (smb://10.0.0.4/share) and when I tried to open a file, Konqueror asked me if I wanted to download the file or open it in the related application. That was confusing, and after making up my mind, I decided to open the file instead of downloading it. Well, the file was downloaded to a temporary folder and then opened in the application. Blah! Well, after editing the file, I closed the application and the system asked me if I wanted to upload the file back again. Smart. But not smart enough.
I remembered using mount_smbfs command on FreeBSD and it never bothered me like this. Infact, I remember windows never bothered me with such questions either. For once, I had to accept that that OS is maybe a bit friendly. But then I remebered the horrors of setting up the network under windows… and I felt better. Hehe.
I tried the command but it was not allowing me to connect – authentication error, it barked back. Looked around, could not find anything that would help me, so I went through the smb.conf files available on the internet and came across “security=share” clause under [global] section of the file. Somehow it clicked… I put that in the conf file and restarted smbd… checked mount_smbfs from Panther and voila! it worked!
That’s for the adventure right in the first few hours of my day – who knows what’s left in the day!
I just installed brand new Altec Lansing surround sound speakers (for my laptop they are just 2.1 channel over 5.1 channel capable system… but whatever… they sound good!) and I was wondering if I could be lazy and listen to some music, especially change tracks and volume as I lay in the bed.
So finally I decided to get bluetooth running on this machine. It’s a Compaq Presario M2000 range laptop with AMD64 Turion (I’m stuck with 32 bits because of PCBSD… but that’s another story). So this is what I did…
Most importantly, it is imperative that any PCBSD (and that ultimately means FreeBSD) user must read through the FreeBSD Handbook before experimenting.
I installed the required application (obexapp) as given and tried the commands. Most of them seemed to fail but the ping worked. Then I remembered reading something at the bottom of the handbook page – a command to disable role switching. Used that and now things seem like they would probably work!
Kudos to the maintainers of the software and the handbook for keeping things simple enough. However, I’m hoping we do get some automagic/ point-and-click functionality for this too… because typing in more than 3 commands scares any casual user. And yes… PCBSD is bringing a lot more casual users than FreeBSD might have expected, so no more procrastination!
Keep rocking *BSD!
I’m installing PCBSD on a few of my friend’s computers… and so far I have run into different issues on different computers. PCBSD installed perfectly fine on my own computers, but its giving me grief on other computers.
While installing on one computer very similar to one of mine, PCBSD would start up, try to load the graphical installer and just hang. I made a wild guess at the reason since the major difference was the amount of RAM that both have. I had added 256MB to the stock 128MB but the other one had only 128MB to play with. So I detached my hard disk drives and connected the HDD from the other computer (as primary master) and went ahead with the install. The installation went on smoothly as expected. (Since I had already installed on this same machine before, only the HDD was different). Then I moved the HDD back to the machine with 128MB and started it up – PCBSD worked fine, only slow. With that, I cleared one machine – with an advice to upgrade the RAM.
Next machine, was my own “jaguar” which I had used in the previous installation. Yes, I had installed PCBSD on it previously – but it was only for experimentation, and not for production use. Now was the time to install it once and for all… I recently bought a 160GB HDD, so I thought I might as well install PCBSD on it. The installation went on fine, but when the time for booting up came – the machine was not ready to boot. It kept complaining that the kernel was not found, a message relating to LBA etc. I searched for a solution and found out that some people had success with another HDD – again, not exactly a solution, but I decided to go ahead with my 40GB HDD instead. Yep, like previous install – it worked!
I attached the second 160GB HDD (which also had a NTFS partition with some data on it) and PCBSD nicely placed an icon under “Start > System Menu > Storage Media”. I happily clicked on it, and I noticed that for my machine, time stood still. Er… I mean it hanged. Then just at the right moment, system fan hissed to startle me (I know these machines are conspiring against me) as the machine rebooted automatically. I let the thing start up again, then this time I checked the properties of the Unmounted HDD Icon… it was trying to mount NTFS partition as UFS… smart! Well, that brought out the geek in me and I dropped to command line, mounted the partition with:
# mkdir /cdrive
# mount -t ntfs /dev/ad1s1 /cdrive
That solved the problem. I copied the data from NTFS to my home directory, rebooted and using the PCBSD install CD, ran fdisk, disklabel and converted the whole 160GB HDD to UFS. Now mounting it is not a problem anymore – just had to
$ kdesu konqueror
Then right click on the Mounted HDD icon and set the permissions for allowing write access to everybody. (Later I’ll move the permissions to users from specific group only, but first I need a working system.)
Next came another computer – this one was a bit different, not the same configuration. I had two systems of this kind too – so I decided to take 128MB RAM from one machine and add it to the other for the sake of installation. So I began with a fairly advanced machine (AMD Athlon 2GHz), 256MB RAM and 40GB HDD – the monitor was the same, but the graphics processor had changed – this time the installer loaded and started – but the monitor complained about being out of frequency. Obviously, X server was not configured correctly. So I pressed the keys [ Ctrl + Alt + F1 ] together to fall back to the console, pressed [ Ctrl + C ] to kill the installer process and chose utilities > shell from the menu. The simple method was to let X configure itself – so I ran the command (we are in the /root/ directory at this time)
# X -configure
Then tested that it was actually the correct configuration:
# X -config xorg.conf.new
It worked!!! Copied it to /etc/X11
# cp xorg.conf.new /etc/X11/xorg.conf
and then started the installer with
I could install PCBSD on the system after that. When it wanted to reboot after finishing he installation, it hanged again at the last step where it shuts down acpi. I had to manually turn off the machine. Next boot I removed the installation CD and chose option 2 [Start with ACPI disabled], and checked if the machine turned off properly now – it did. So again, started the machine with option 2 in the boot menu, edited the file /boot/device.hints to add
# kdesu kwrite /boot/device.hints
at the end of the file. Next time the computer will boot nicely.
So far, the experience hasn’t been exactly peachy, but it is much more easier than FreeBSD to set up a new machine! Kudos to PCBSD team for bringing us closer to seeing BSD everywhere. I wish the the best for future since their efforts hold a lot of promise and importance.
If you have not tried PCBSD yet, you probably should soon. :-)
Let us imagine, you have a few thousand Rupees to spare so you go out shopping. Being the hard-working person that you are, you need some caffeine to squeeze that 25th hour out of the day. A good decision – you purchase the brand new Panorama Coffee Maker. It has the capability to download the latest coffee recipes off the Internet and can serve you different styles of coffee from espresso to Mexican mocha.
It also has one nifty feature – suppose you want to make a cup of orange coffee, all you have to do is get a small brown box labelled “ingredients for orange coffee” from the shop and attach it to your Panorama Coffee Maker. From that point onwards, you can enjoy as much orange coffee as you like!
You have been told that you should not try to tinker, or the Panorama Coffee Machine will stop functioning. “That’s fair enough.”, you think to yourself as you slide in your favourite mug for another refreshing dose.
“ERROR! RECIPE PROTECTING CUP NOT FOUND!” The Panorama Coffee Machine screams at you. You are slightly shocked at what you just heard… all you did was use *your favourite* mug instead of the one that came with the Panorama Coffee Machine! You try to press the buttons to coax the machine into pouring some coffee but it plainly refuses to budge.
Smart machine! So you put the recipe protecting cup into the machine and it promptly fills it with sweet caffeine. You take your fave mug in one hand and try to pour the coffee into it – but the smart cup detects the absence of lips on the edge and swiftly blocks the coffee from falling out. Huh?! You try to put in a straw and it gets zapped by invisible lasers. Whoa! That is hi-tech!
Well, it lets you pour out the coffee, but only after the cup removes all the special ingredients – what you get is tasteless brown hot liquid.
You love this coffee maker because it makes you so many varieties of coffee at your convenience… but you can’t stand the smart coffee cup – you cherish the mug your buddies bought you for your birthday. The geek inside you comes to life, you set out looking for a smart cup that might spill some coffee. After long nights working on a hack, you find a way to make the original cup give in and you smile as you pour the coffee into that lovely mug.
The news is out soon, your friends who own such machines want to know how to get *their* coffee in *their* mugs. You tell them how and everybody rejoices.
A few days later, you wake up to get your coffee and the Panorama Coffee Maker barks out “ROGUE CUP! NO COFFEE FOR YOU!”. After a lot of persuading, tinkering, smashing you decide to skip the coffee and turn on the TV. Everybody is complaining that their Panorama Coffee Machines are refusing to work! The world is in chaos!
Panorama Coffee Maker’s manufacturers found out that the smart cup they were supplying was compromised and people were drinking coffee in their own mugs – which meant that people could find out the secret recipes. The people who sold these recipes and the ingredients were very angry that the smart cup was not “robust” enough. So the company decided to revoke the authorization for ALL the stock smart cups!
Now, only people who had already bought smart cups from different vendors and authorized them early are able to have their coffee. Some people tried purchasing a new smart cup but were greeted with a very unfriendly message telling them that they needed to re-register their coffee maker to work with the new cup.
You remember that it was not so a few years back. You could get a recipe for free from the Internet – people loved to share their creations. And that there were actually a few coffee machines like the Panorama Coffee Maker that could use the freely available recipes and needed just plain raw ingredients – no closed brown boxes. But the recipe makers decided that it was time to make more money, The company that made the Panorama Coffee Maker decided that it was time to get the competition out of the way and an alliance was formed.
This alliance declared that nobody is to be trusted – not even the people who pay for the coffee. If their recipes are leaked out, it would mean the end of the world! So instead of the simple, inexpensive coffee machines, the market started seeing a whole new bunch of snazzy looking gadgets that claimed that they could make any type of coffee available on the earth… eager to enjoy, people purchased the new machines and let go of the old ones.
The alliance also declared that the ingredients will be sold in closed boxes that only the Panorama Coffee Maker can open. If anyone tries to sell the ingredients out in the open, they will be persecuted and sale of their product will be stopped immediately, also their license will be revoked. Same applied or the smart cups – if they could not deliver coffee from the machine to the user in a very secure manner – they would lose the permission to do business. If one cup failed, they would have to redesign the future cups and also provide the current cups with a new “patch” to make them more secure. And for the time that these cups are fixed – every person owning the cups will not be allowed to drink coffee from that cup.
And the bad part was – all this security needed a lot of extra gadgetry – and the customers were made to pay for it.
The alliance also declared that the recipe must not be made to perfection – the Panorama Coffee Maker deliberately reduced the taste while pouring into the smart cups so that it would be more difficult to guess the recipe from the flavoured steam that rises from the cup. Then the cup was supposed to amplify the taste as the coffee touches the edge of the cup and passes into the customer’s mouth. This meant that there would always be less quality in the coffee – but it was deemed necessary for the security of the recipes.
To top it off, if a company designed a new secure smart cup, its security was to be tested by none other than the recipe makers. You had to have a written permission from at least three big recipe makers before you could get authorization from the company.
You sink deep into this nightmarish scene… wondering why didn’t you realize this plot in the beginning. You remember people screaming about it in the streets. You remember thinking “this will never happen to me”. You remember the smell of home-brew coffee and your favourite mug!
Suddenly you realize that we are only imagining this scenario…
Welcome back! If you read the whole thing and if you think that this is ridiculous, you should see what Microsoft is planning with Windows Vista. I’ll rather not repeat – Peter Gutmann has done a great job in documenting it all very clearly. Please, take the time to read his words – they are very important