The Debian GNU/Linux and the OpenSSL Licence

Monday, June 2nd, 2008

The Debian GNU/Linux OpenSSL bug showed how much a bad, can do an mistaken interference by a developer. The social benefits of the open source
development are plenty but there are dark sides too. Of course, many eyes are better than one. The vulnerability was exposed and the patch was
available soon after.

The famous OpenSSL Licence vs GPL issue was brought back. This OpenSSL licence is a bit tricky. It conflicts with GPL licence in an disturbing
manner. On the other hand, based on the number of applications that are based on the OpenSSL toolkit, some of them heavily it’s to imagine
life without an Open Secure Socket Layer. So here are the findings
of Marc McLoughlin on the issue, written back in 2004. I will post a snippets that drew my attention,
although you can read the entire mentioned post, it’s not big:

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

The above does or does not apply for OpenSSL? In a strict way it doesn’t, in a wider it does. Here is the Debian GNU/Linux board’s position on
the matter back in 2004:

Considering the fact how many packages use the openssl libs, I dont see a
problem in defining openssl a OS base package. Especially since it is
priority “standard” anyway.

The above is certainly true. The OpenSSL libraries are so deeply integrated that few programs could deal nowadays without them. There is, as always,
the open or if you want, opener way to go: GnuTLS. Bern Eckenfels also writes:

Since Debian adopted its current hardline position on the GPL+OpenSSL
licensing issue, I’ve noticed a dramatic decrease in the number of
things OpenSSL can do that cannot also be done with GPL- or
LGPL-compatible libraries, and I’ve also discovered that there were many
more LGPL crypto routines available than I had previously thought
. One
of my packages was using OpenSSL, but only for DES and MD4; it was a
simple matter of a couple evenings’ work to integrate some equivalent
code from libmhash and libmcrypt. If you need any help finding LGPL
code that meets your needs, let me know.

The issue still exists, I don’t know if the GnuTLS libraries can be applied in every application using OpenSSL. Probably this can’t be. But for small projects
GnuTLS seems to be a much more valid option, as it avoids possible legal hassles in the future.

Going back to the roots: Gentoo

Wednesday, April 30th, 2008

Yesterday I had to plug once again my home server. This server runs a few services and acts as a DNS for the local network. I have a machine like this up 24/7 to serve specific purposes. I haven’t find any router that can replace it. Of course, I didn’t try high range routers, like CISCO. Anyway, this machine used to run OpenBSD.

My experience after almost a year of OpenBSD (simple) administrating is somewhat bad. The home server used to run, DNSmasq, MySQL, Lighttpd with PHP5 and a modified version of lighttpd in order to run Ruby on Rails. It was an OpenVPN server, along with sshd and OpenNTPD. Also there was a Nessus server running on the same machine and FTP just for the local network.

The server is a Pentium 4 with 256 MB RAM. It can handle the above easily no matter what OS you install. However, the OpenBSD proved to be a bit too much frustrating for me. Although my experience allows me to do everything manually, download, install and configure programs manually, due to my experience with Gentoo, I was trying to find in every situation the right way to do things. The drawback is that you have to read a bit more usually, but in return you will be just fine when upgrading (hopefully!).

The problems with OpenBSD start exactly there. The manual clearly states that people should use the precompiled packages before using the Ports. First thing, using precompiled packages saves huge amounts of time compared to Gentoo’s philosophy of compiling everything. But! There’s always a “but”. They seriously lack of flexibility and that was a known issue. I was fine with that, after all I didn’t want a bleeding edge machine. I just needed a server to serve a few services to the local network, nothing more. The installation of the combo: lighttpd+mysql+php proved to be much more complicated than I ever imagined! First problem was that the precompiled binaries didn’t match in versions. I had to find manually my packages from various mirrors. You see I didn’t find a way to tell pkg_add to switch between mirrors automagically. Then, I found out that the precompiled versions of PHP and lighttpd were unfit. The fastcgi option is kinda rare. So I had to install them using ports. No problem, I thought. After a few tries and much reading, I managed to install the combo. The frustration continued with ruby on rails. Ruby on rails is not easy to install anywhere. I had a few issues on MacOSX as well but I managed to install them correctly in both systems using lighttpd and mysql correctly. Then I wanted to install DNSmasq. After the configuration and a few days of frustrating troubleshooting a guy told me that there was bug in the OpenBSD kernel that stops dnsmasq from working properly: DNSmasq was not able to assign ip’s because it couldn’t send announcements packets! I still didn’t thank this guy enough! I was going crazy, I never had issues before with dnsmasq!

Apart from the OpenBSD installation troubles: every single install, from irssi to complex PHP applications was an issue. The most frustrating for me was the version upgrade process. I don’t know why they need to upgrade the base system in that manner. I tried both cvsup -for advanced users and heavily discouraged by the handbook- and CD upgrade. Both methods gave me issues. The strange thing is that I was really going by the handbook! The folks on #openbsd@Freenode helped a lot. But still I didn’t understand this lack of flexibility and ease of package management and upgrade process. In the end everything became so frustrating that I really had no will to install anything more than the absolutely necessary.

After almost 3 years of absence from my computers, Linux came finally in (again). Gentoo was the obvious choice. I know very well the community and the mindset around Gentoo, so I feel very comfortable with it. Although it may seem an obsolete choice for a computer server, but for me is the best! The upgrade process is simple yet powerful, emerge is the perfect tool for package management and the troubleshooting is easy. While it was hard for me to find help with OpenBSD’s issues, the gentoo community is one of the most active communities I’ve ever seen. Plus the fact that… everything works! I just typed:

# env USE="cgi php mysql fastcgi" emerge lighttpd

and everything worked like a charm!

Going back to linux?

Sunday, April 13th, 2008

Linux DesktopRecently I’m feeling the desperate need for a Desktop computer. Due to “much spending” and other needs, I am seriously thinking to buy an iMac on September. However until then I need a widescreen desktop. I didn’t buy anything near to core duo. The last two computers I got, were 2 Pentium 4 powered machines. The first one is acting as a home firewall/gateway server and the second one will act as a home server for torrents and other needs mostly. On the other hand there’s a Dreambox decoder running here, that could be easily turned into a small Linux server for torrents and other staff. I have to decide the topology these days.

If I get the mac, it will be an iMac 2.8 Ghz Core Duo with a 24” screen and at least 2G of RAM. However, as mentioned above, this scenario seems a little rough right now. So I’m seriously thinking to go back to GNU/Linux. I haven’t used Linux as my main desktop for almost three years. I’m really satisfied with OSX, it suits my needs perfectly. However a desktop computer is badly needed here so… I’m thinking of a core duo machine with at least 1.5 G of Ram and plenty of HD available. The graphics shouldn’t be nothing extravagant, I don’t need them. I do some basic video and photo editing but that’s all.

The first problem in a similar cases is how you transfer you data from one computer to the other. Now, all the mp3’s and photo libs are handled by my laptop on the WD MyBook’s UFS partition. I like the way iPhoto and iTunes handle the library, although iTunes tend to be a bit bloated & slow, it works good enough and it’s in line with my iPod. Linux will give a hard time with the ipod and… Windows is not an option.

Another issue is the distribution of choice. I am among Gentoo and Ubuntu. I have a computer on the basement running WindowsXP & Ubuntu Gutsy. I’m surprised by the ease of use and way that the Ubuntu team put everything together. Apparently everything works as it should. I didn’t had issues with broken programs etc. But as said before, it’s not a day-to-day computer for me so I can’t be sure. On the other hand, I like Gentoo. I love it. It would be a one-way choice for me, but the problem is time. Gentoo takes time to configure and I’m not quite sure I want to spent too much time on configuration. I’m much more interested in quality time, you know? Doing things with a computer not just troubleshooting in order to make it work.

Next week, I’m leaving the army (FINALLY!) for good and I have to make a choice and stick with it…

The operating systems in the future will be free or dead. Linux leads the way?! Some thoughts…

Monday, January 14th, 2008

I firmly believe that GNU/Linux will overthrown other operating systems in the future if lawsuits and corporate tricks doesn’t stop in some way, the development. Of course, I’m not sure, no one can tell what’s gonna happen next, but I think that the operating systems in the future along with the internet will be free or dead. Free meaning, not priced. Not necessarily open source, just free. I believe that the operating systems will become a platform for developing programs. They already are. Windows, MacOSX and GNU/Linux have all powerful development tools with their pro’s and con’s. The main difference is the price: GNU/Linux is FREE. It’s development model may has it’s week spots. The end user, for most GNU/Linux programmers is considered above the average end user’s level. Which is not wrong at all. If some Linux geek needs a widget his desktop, Fluxbox, I as a GNU/Linux hacker he may write the code and the GUI just for his window manager not carrying about others. He may not care too much about newbies and installation harassment. Yes, still it’s free. The lovely distribution called Ubuntu has done a marvellous work around Linux. It made it much more efficient and easy to install and upgrade. Still there are issues that require console to be used, while MacOSX doesn’t require console although the BSD roots are visible if you open the Terminal.

Linux already is a great platform for corporations to develop their business on it. It’s not an accident that the Linux server market share is huge and growing. The TCO is often in Linux’s favour. Especially when it comes to large scale projects.

Linux is usually the first operating system to implement new ideas. Usually these new ideas are badly or poorly implemented, but most of them start here. Widgets for example, made their first appearance in MacOSX Panther if I’m not mistaken using a third party program and then Apple implemented them into Tiger. Microsoft waited for Windows Vista, in order to put them on the desktop. For computer users like me, widgets are just memory consuming eye candies, that usually hurt productivity, but still the first operating system that had small pieces of software running on the desktop showing computer stats, the weather or other staff where made for Linux. This is just one of the ideas. There are many other examples.

Big corporations supported linux after they understood it’s possibilities and the divine gift that were given to them by Linus Torvalds and the GNU community. File systems such as XFS, JFS and EXT3FS were made for Linux by corps. IBM strongly supports linux, Sun Microsystems supports Linux, while producing Solaris, HP supports Linux too. With corporations like the these it’s hard to fail.

Back on the desktop. Linux still has a very small percentage of users. But, think about it, can it grow smaller? I’m convinced that it cannot. It can only grow larger and stronger. The reason, is the openness and price. How can you compete with something that its free? By delivering a far superior product and supporting it. But for how long will Windows and MacOS be so much better than Linux for desktop users. There’s a convergence towards a similar model. You can see it clearly if you check out the three new operating systems: Linux Ubuntu (KDE 4.0), Windows Vista, MacOSX Leopard, they all have the same eye candies, the same capabilities. Ubuntu has done a great job, I rarely have to use command line with Ubuntu. In a few years, if the developers and community can keep the pace, they will need no console at all to make everything work (printers, scanners, webcams, etc). What will happen then?

People still use Microsoft’s pirated products. Piracy kills both open source programs and closed source programs. If someone needs to use Adobe’s Photoshop for it’s supreme picture editing capabilities, he must purchase the software! Otherwise go Gimp and be legal. Most of the average users will never use Photoshop’s advanced features.

While I like so much the MacOSX and the Macintosh community, for being smart and fancy and everything, like Apple and MacOSX is, I see no future if the OSX remains closed. I’m talking about the immediate future, I’m talking about something that will happen in 50 or 60 years. When all the operating systems around will be very much alike. I may or may not be wrong, I hope I’m not though, for the sake of everybody. I don’t believe that software like Final Cut should be free. I firmly believe that considering the fact that Linux is around, the others have no choice. They must go open source, free or die.

Small Linux PC από την Shuttle!

Thursday, January 10th, 2008

Το καινούριο Shuttle PC τρέχει GNU/Linux, λογισμικό ανοιχτού κώδικα, κι είναι φθηνή καλή λύση για το σπίτι αλλά και μικρό γραφείο. Κοστίζει 199.00 $ κι έχει σαν στόχο τους χρήστες οι οποίοι δεν έχουν ιδιαίτερες απαιτήσεις από τον υπολογιστή τους. Απλά χρειάζονται έναν υπολογιστή που να έχει πρόσβαση στο διαδίκτυο, χωρίς προβλήματα μα ιούς και spyware! Ο barebone υπολογιστής θα τρέχει Linux, άγνωστο πια διανομή, φαντάζομαι μια stripped down Ubuntu έκδοση. Θα έχει 945GC Chipset, 512MB RAM, κι 60 ή 80 GB σκληρό δίσκο. Το κουτί είναι πραγματικά πολύ όμορφο, μικρό και βγαίνει σε κόκκινο, λευκό και μαύρο.

Το σύστημα αυτό, έχει σκοπό να χτυπήσει την αγορά των υπολογιστών χαμηλών προδιαγραφών αλλά και τιμής για απλή χρήση. Νομίζω πως στο μέλλον θα είναι ένας άμεσος αντίπαλος του Mac Mini αφού θα κυκλοφορήσει κι έκδοση με επεξεργαστές Core 2 Duo.

Εύκολη και γρήγορη διαχείριση αρχείων στο iPod Touch.

Saturday, December 8th, 2007

Εννοείτε ότι για εγκαταστήσετε τα παρακάτω έχετε ξεκλειδώσει το iPod Touch. Για να εγκαταστήσετε samba (έως σήμερα τουλάχιστον) πρέπει να γνωρίζεται από γραμμή εντολών SHELL σε περιβάλλον UNIX αλλιώς μπορεί να κάνετε καμιά πατάτα. Αν υπάρχει ενδιαφέρων για ένα step-by-step howto για αυτούς που δεν γνωρίζουν, και δεν σας καλύπτουν τα links, drop a comment και κάτι θα κάνουμε :-).

Το iPod Touch, είναι μια συσκευή που μπορεί να τρέξει οτιδήποτε. Αν έχετε macintosh υπάρχει η λύση AFP. Φανταστικό πρωτόκολλο επικοινωνίας με πολλά features. Είναι ο καλύτερος τρόπος για να επικοινωνήσουν τα Mac με UNIX-like (BSD/Linux) και φυσικά με το iPod Touch. Η εγκατάσταση στο iPod Touch γίνεται εύκολα και γρήγορα μέσω του Installer.

Η καλύτερη λύση εάν έχετε windows based υπολογιστή ή εάν ταξιδεύει το iPod συχνά μαζί σας και θέλετε να το χρησιμοποιείται και σαν εξωτερικό σκληρό δίσκο, είναι να εγκαταστήσετε samba στο iPod Touch. Οι οδηγίες είναι εδώ αν και θέλουν λίγο tweaking για το iPod Touch. Πρώτα από όλα στο αρχείο smb.sh γράψτε εκεί που λέει “iphone start/stop” .. “ipod start/stop“.
Αρχικά δημιουργούμε ένα directory στο “/private/var” γιατί έτσι πως είναι η δομή του filesystem εκεί υπάρχει πολύς χώρος σε αντίθεση με το root (/) partition.

# mkdir /private/var/myfiles/

Έπειτα, επειδή το συγκεκριμένο config είναι για iPhone, δεν κάνει για εμάς. Εμείς, που έχουμε iPod Touch, δεν θέλουμε ringtones, σωστά; Οπότε το smb.conf πρέπει να μοιάζει κάπως έτσι:

# iPod Touch smb.conf
# atma
[global]
workgroup = iPod
netbios name = ipod
server string = "ipod"
debug level = 0
force group = wheel
interfaces = en0

[Media Files]
path = /private/var/myfiles
valid users = root
read only = No

[smb_logfiles]
path = /var/root/apps/log/var
valid users = root
read only = No

[root]
path = /
valid users = root
read only = No

Δώστε προσοχή στο [root]: Θα δώσει πλήρη πρόσβαση στο iPod Touch. Αν υπάρχει περίπτωση να βρεθείτε σε ένα μέρος όπου δεν θέλετε οι χρήστες να έχουν πλήρη πρόσβαση στο iPod Touch, καλύτερα σβήστε το τελευταίο entry. Επίσης να έχετε κατά νου, ότι αν αφήνετε το samba server ανοιχτό, μια τρύπα ασφαλείας μπορεί αν δώσει access στο iPod Touch σε έναν εισβολέα. Δεν είναι σενάρια επιστημονικής φαντασίας, το samba έχει κακό ιστορικό ασφαλείας, ενώ το iPod Touch είναι ένα μικρό αλλά πλήρες σύστημα UNIX. Ένας υπολογιστής, γι αυτό να τον προσέχετε.

Blog client for Linux

Wednesday, November 21st, 2007

I was looking for a blog client for Gnome. Well I found out Mudawin which seems to be decent. Another valid alternative for a Movable Type blog is PyQLogger but is based on QT and I don’t feel comfortable mixing things. I use a Gnome desktop which is the Ubuntu default DE, and I’d like to stick with GTK+ applications. Mudawin is JRE, which means Java, it needs a jre binary and you’re all set. I did not have the time to try it yet. I did not any other valid alternative. If you have Ubuntu you can find Drivel in your which supports: wordpress, bloggers, journal and few other main blog providers. It lacks of important features though and does not play with mephisto’s XML-RPC.

Ubuntu 7.10. Linux finds his way to the desktop?

Tuesday, November 20th, 2007

I never was a strong supported user-friendly distributions. Having had bad time with Mandriva and Redhat in the past, while doing whatever I wanted to with Gentoo which is considered much more hardcore, I decided never again to go for an easy to use Linux distribution. The major problem with Gentoo however, was the lack of time. When I start working for more than 8 hours per day, many days in front of a computer at work, I was not having fun with my home computer anymore. I bought a Mac and my life turned easier in many ways. Although I consider my self an advanced linux user, in the sense of a user who knows where and how to find help when he has an issue, I was not having fun anymore with Linux and I didn’t want to waste my time in troubleshooting. Whoever tells you that Linux is not about troubleshooting, well he is not using it like I did. Being part of a community you want to try things, not a computer that just works.

On the other hand, when I took the Mac I had a UNIX powered, idiot-proof computer. I fell for the macs and the community. I found a community that was way more innovative, with much more genuine ideas than any other. Although it may look similar, the Macintosh communities are way different than the Linux ones. Even between Linux communities you can see quite different behaviour. It’s not the same posting on a Slackware mailing list and posting an issue on the Gentoo forums for instance. The Gentoo forums kept a steady and very new-be oriented policy since day one. While other distributions decided to keep the elite and let the other users drawn. Of course the users behaviour doesn’t depend on the Linux distribution, but some distributions, reflect the users level and (not rarely) style and thinking.

I was somewhere in the middle. Among the two categories, sometimes I was trolling over poor newcomers and (thankfully) most of the times I was helping if and when I could. That was until 2004 though. Afterwards I started to avoiding communities and Linux related issues. And the truth is that since then I’m losing much more time in programming in Objective C, Python, Bash or (now learning) Ruby. But I didn’t waste much time in linux. I turned my home server from Gentoo to OpenBSD in order for it, to be stable and not require often updates. I met the OpenBSD community too. Talking about narrow-minded people? Take a look at the OpenBSD community. They blame and talk bad about everything else, while it’s widely known that OpenBSD fails miserably as a Desktop computer. Most of them are expert users, geeks you could say, programmers and hardcore computer users. It’s the entire OpenBSD project that keeps it’s elite attitude and the users just follow the guidelines the developers give. Theo De Raadt is not an easy guy. You may say that Steve Jobs is not easy as well, but he hardly affects the macintosh community in the way Theo does affect the OBSD community. Enough with OpenBSDers!

Having said the above, I never thought that Linux could turn so user friendly and usable in so little time. The Ubuntu community is really good. The documentation seems to be complete and the final result astonishing. The installation is easy, the migration from windows is easy too. You will not avoid the command line if you have troubles, lets say with your printer, which is a major drawback for a normal user. The look and feel in Ubuntu 7.10 is greatly improved. I still dislike the fonts though. In my computer ( 2.6 Ghz, 512 RAM, 300 GB HD) Ubuntu runs really fast and the eye-candies run smoothly as well. It’s easy to install Greek or other languages, it’s easy to install and uninstall applications. It seems that Linux made some huge improvements over the past two years that I don’t really use it anymore. Plus, Ubuntu seems to have very good interoperability among the standard programs, which you can see in the Synaptic Package Manager with the Ubuntu icon on the left. The programs don’t break, just work and that’s really what the average user needs to know. If they try to put the entire freshmeat.net directory into the distribution they will not be able to improve this interoperability that is very important for the end user experience. The network configuration is done automagically if your computer is connected to the Internet via ADSL or Cable. The only thing that I found annoying is the IPPoverHTTP printer configuration. Still didn’t solve it. Then I missed an application launcher like MacOSX’s Quicksilver. I’ve fount the alt+f2 shortcut which seems to be pretty nice. Not even close to what QS can do, but still a good application launcher!

It’s the first time since 2004 that I’m seriously thinking to switch my main desktop to Linux again. The 24” inches screen makes it a tempting move, the Ubuntu Linux distribution makes it possible at a good point. I can’t create good brochures without Apple’s Pages, but for the rest, it seems to be good. Not as good as an iMac but quite goood :-)