RISC-V – Open Hardware coming to us?

There is no question: Open Source Software is a success. In the beginning of computing it went without saying that software was distributed along with the source code for it. This was before commercialism came up with the idea to close the source and hide it away. But even though there still are many companies who make millions of Dollars with their closed software solutions, OSS has a strong stand.

There are various operating systems which are developed with an open source model and there are open source applications for just about every use you could imagine. Today it’s not hard at all to run your computer with just OSS for all of your daily tasks (unless you have very special needs). I do – and I am more happy with it then I was at home in the over-colored world of put-me-under-tutelage operating systems and the software typically running on them.

Open Source Hardware?

While – like I just said – OSS has largely succeeded, Open Source Hardware is really just in its very early stages. But what is OSH after all? Unlike software it does not have any “source code” in the common meaning of the word. And for sure hardware can’t simply be copied and thus easily duplicated!

The later is completely true of course. And it’s also the reason that makes open hardware a thing very different from free software. While anybody can learn to code, write a program and give it away for free without having any expenses, this is simply not possible with hardware. You cannot do something once and are done with it (except for maintaining or perhaps improving). Every single piece of hardware takes time to assemble. You cannot create hardware ex nihilo (“from nothing”) – you need material and machinery for it.

So while we often come across the term Free and Open Source Software, there can’t be Free Hardware (unless it’s donated – which still means that there’s only a limited amount available). So we are left with the next best thing: Open Source. In case of hardware this means that the blueprints for the hardware are available. But what is the benefit of this?

Research, Innovation, Progress

Of course OSH doesn’t enable you to have a look at the source, change it and recompile. But while modifying it is a lot more complicated than that, it is at least possible at all! Interested in how some piece of hardware works? If it is some conventional hardware – tough luck (unless you’re working as a specialist in analysing hardware from your competitors). If it’s OSH however, just get the circuit diagram and the other papers and given that your knowledge in Electronics suffice, you won’t have too many problems.

Usually hardware vendors try to keep their products as untransparent as possible. The idea is to keep the gap between company A and the competitors as large as possible by making it hard for those to make use of any results from the research of company A. From a purely commercial point of view this is the most natural thing to do. From a technical one however, it is not good practice at all. Any new vendor is doomed to repeat much of the research that was already conducted by others.

With OSH, not only the results of the research (the hardware pieces) are made available, but the complete documentation is also published. This means that others can have a look at how that hardware is being built. They can copy the design and concentrate on improving it instead of having to do fundamental research beforehand, maybe only to find a solution to essential problems that have been solved several hundred times before… This means that while individual companies profit a lot from closed sources, this practice is a major waste of resources and time. Just imagine how much better hardware we might already have today if all these wasted resources had been put to good use!

Trust and Security

Another important issue is security. We know that e.g. just about all routers available contain backdoors intended mostly for intelligence services. But even if you don’t care about this: Keep in mind that if there are holes in your hardware, ordinary criminals could exploit them as well. Do you want this? Is it a pleasant thought that your hardware which you bought for a lot of money, keeps spying on you? Think about it for a moment. The bitter conclusion will be that there is not much you can do.

Some people recommend not to buy electronics from the US anymore. A good idea at first glance. Still let’s be realistic: The USA might have the biggest spying apparatus of the world and thanks to Mr. Snowden we are alarmed about it. But that doesn’t mean other nations don’t do the same. This is rather unlikely if you ask me. And in the end, currently it’s the choice whether your hardware tells everything about you to the Americans or to the Chinese…

This is a very dissatisfactory situation. Open Source Hardware could help here a lot: If you’re really a serious target of intelligence, you probably even deserve it. In this case they have the means to intercept your hardware and – make subtle changes you probably won’t ever notice. But it could make todays mass-surveillance much harder or even impossible. Got your new piece of OSH? Thanks to the detailed specifications you could even substitute its firmware with a custom one thwarting the purpose of the one that was installed by whoever person or group.

Open Source CPUs

One of the most important pieces of OSH would surely be a computer’s CPU. What matters most in this regard is – next to the actual design – the instruction set. It is this instruction set which determines a processor’s capabilities. Each family of CPUs (i.e. those which have the same or a compatible instruction set) is its own platform. Programs have to be compiled to run on it and won’t run on another (unless emulated).

There have been various attempts to create OSH CPUs or at least come somewhere close to it. Since the beginning of the 1990’s, the MIPS CPU’s design are licensable. While this does not mean the diagrams are available to the public, it is at least possible to acquire them if you are willing to pay for it. If you are, you can produce your own CPUs based on their design. SUN attempted to go the same way with its SPARC architecture but was less successful.

In the recent years the ARM platform has gained a lot of attention – thanks to basically following the same strategy and licensing their CPU designs to their customers. This development is a good step in the right direction and certainly commendable: One company specializes in conducting research and designing CPUs and others license and build theirs based on them.

But then there are projects which really qualify as OSH. Yes, they are underdogs compared to the other hardware which is no wonder because they of course lack the financial means which back the others. But we are getting there. Slowly but steadily.

RISC-V

This month the Berkley university released what was originally started just for learning purposes but grew into a very promising project: The RISC-V. RISC stands for “Reduced instruction set computing” which basically means the decision to build a CPU that uses a simpler instruction set to reach high performance.

While there’s also another OSH project known as OpenRISC, it never gained enough traction. They managed to design a 32-bit CPU and the architecture has been implemented in emulators such as Qemu and can run Linux. A 64-bit variant has been in development for quite some time and while the project collected money via donations for years it has been unsuccessful to actually produce their hardware. So OpenRISC exists merely as a soft-CPU and using FPGAs (Field programmable gate array). OpenRISC is licensed under the (L)GPL.

RISC-V is made available under the proven BSD license. In contrast to the GPL it is a permissive license. While I was keeping my fingers crossed for OpenRISC for years, now I am really excited at this news! Especially with such a reputable entity as Berkley behind the project – and the fact that things look like they are really moving forward this time!!

One of the most promising efforts is lowRISC: This British endeavor is actually a non-for-profit organisation claiming to work together closely with the university of Cambridge and some people of Raspberry PI fame. A dream come true! The idea is to implement a 64-bit RISC processor via FPGA during the next months and have a test chip ready by the end of 2015. They estimate that about a year later, in the end of 2016, the first chips could be produced. Sounds like a plan, doesn’t it?

I will definitely keep an eye on this. And even if the release must be postponed, it will surely be worth the wait. Open Source Hardware is coming to us. It will most likely be “expensive” (since it can only be produced in much lower numbers than conventional hardware for the mass market) and quite a bit “weaker” in terms of performance. Nevertheless it will be trailblazing the future for OSH and thus drawbacks like these are very much acceptable.

No RISC no fun!

Craven New World – or how to ruin the net

Alright. I never expected to write about anything remotely “political” on my blog… It’s about technical things, right? Ok, ok, free software is “political” all by itself. Kind of. But that’s about it.

While at times I’m really sick of what happens on the world, that doesn’t fit well on a blog about computer topics. I admit that I was tempted two or three times to write something about all the blatant and ruthless lies against Russia and things like that. But this is not the right place for those topics. So I resisted. Then came July 1st…

I begun to write a full-sized rant on that day but in the end decided to drop it and re-think things when I got calm again. Since I’m still stunned and angry at the same time, I’ve simply got to write an article now nevertheless.

The one and only

In that morning I read about how Paypal froze ProtonMail’s account. While it is nothing new that Paypal freezes accounts, the rationale was quite interesting. ProtonMail is a provider of email services. What makes them stand out is that they are developing an easy-to-use email system that features end-to-end encryption.

Now it’s a well-known fact that there are powers out there who have no respect at all for your privacy. They want to know where you go, what you download and what you talk about when you mail grandma. You could be a dangerous villain, skilled to pretend the contrary after all – and if they can’t find out what color your underwear is, you might even get away with it!

From that point of view, encryption is… well, irritating to say the least. Which makes it a clear thing that ProtonMail sucks big time. How dare they help people who prefer to keep private things private? So Paypal froze their account, because that company “wasn’t sure whether ProtonMail had approval by the gouvernment” for their business. As a matter of fact, the US have quite a few strange laws. But that’s another thing and it’s perfectly fine if an American company doesn’t wish to assist another American company in doing something unlawful. Except – ProtonMail is not an American company… It’s based in Switzerland!

How can it be that a Swiss company would require US approval for their business? And it’s not even the first time that something like that happens. The USA has blackmailed Switzerland not too long ago. And with their “compliance” ideology they are choking many others, too. This is a very alarming and gross practice. But it is, I cannot repeat it often enough, nothing new.

Just hand it to us!

A while later I read about how Microsoft had just seized more than 20 domains owned by no-ip. This cut off almost two million users from using the no-ip service. And what was the reason for such a draconian action? Was the life of the president at stake? Nope. Was the whole country threatened by some ancient evil perhaps? Not really. It was far worse than that: Microsoft had found a judge which allowed the domain seizure because Microsoft claimed that there were two accounts involved in spreading malware…

This was the moment I had to take a look at the calendar just to make sure that I didn’t mess up things and it was actually April 1st! But no – unfortunately not.

I just want to add that I am not an no-ip user and wasn’t affected personally. But I know people who were – one was even affected enough to finally give Linux more room both for private use and in his company. So while the whole thing is pretty much insane it has its good sides, too. Especially since I expect more people to be really upset after what Microsoft did. Maybe they should rather spend their time fixing their own broken windows than throwing stones at other people’s business?

Oy vey, we want your money!

Ah, what a day. We had some news which were hard to believe if such things weren’t happening over and over again. Then there was some news which left me incredulously shaking my head. What Microsoft did was ludicrous and the fact that some judge ruled in their favor is downright absurd. That cannot possibly be surpassed, can it? Yes. Unfortunately it can.

The last news is just so completely off the scala, that I don’t find any words for it (even in my native language that is). While the Microsoft case makes you question your sanity, the other thing that happened makes you struggle for your faith in mankind. Seriously.

So what happened? Well. More or less this:

Group A (private individuals) who are citizens of
state B (Israel) mandate
organisation C (a jewish law firm) to sue
state D (shiit (!) theocracy Iran) in
state E (the USA) for alleged financial support of
organisation F (sunni (!) Hamas) who are accused of
action G (a terrorist attack) in
territory H (the Gaza stripe) which belongs to
state I (Palestine) as group A claims they have suffered from action G.

Now under normal circumstances you’d laugh at any weirdo who can come up with such an idea – let alone actually carry it out… When you’re finished laughing and wiped the tears out of your eyes, you wish him that he’ll find a good mental doctor.

The story is not over, however. The US court rules in favor of the claimant – and since Iran did what any sane person would do and denies this arrogant impertinence, there’s now the fine (like I said I’m at a loss for words) idea: distrainment of the Iranian TLD (.ir)!!

Come on! Distrain a TLD on the net? Seems like they are really working hard to ruin the net. Congratulations to all those bright people involved.

What’s the world coming to?

In my country (Germany) the phenomena of anti-americanism is on the rise. Many people are in rage because of what the NSA did (and without any doubt continues to do). This is a rather sad thing actually, but in many cases I agree with what people say. The US government is one of the most corrupted an unsound entities of the world. Yet – and that deserves to be emphasized – that doesn’t make all Americans warmongers or liars.

The government in my country is run by criminals as well and so I’m probably not in the best position to complain. After all former chancellor Schröder openly admitted (in one of the biggest newspapers of the country!) that the NATO bombings in Yugoslavia (which he supported) were against international law. By stating so he confessed to be a war criminal – and that had no consequences whatsoever. Funny, isn’t it? And still I’d admit any time that I think of him as a more “honest” person than current chancellor Merkel…

Action!

I’d really like to ask every and all Americans to try hard and reclaim their country. But there’s not too much people who value freedom can do right now. Yet there is one thing we can all do: Start using encryption. Yes, invest that half of an hour to teach your grandmother how to write and read encrypted mail. It’s not that hard.

You are telling me that you have nothing to hide? That’s great! Why? Simple: Same here. It’s great because it is this important little fact that makes us qualify to begin encrypting. Currently it makes you suspect if you use encryption. Well, I can live with that.

I also don’t mind if those who think they absolutely have to know what I mail my grandmother break the encryption. But if they want to, they may well invest quite a bit of effort. If they find it worth the time and resources to learn how much my children have grown since we last visited her, that’s fine for me. If everybody used encryption it would be a normal activity. Let’s aim for that!

So – what about you?

Eerie’s second birthday!

Today is the first day of my third blogging year. It’s hard to believe that it has been two years already but I checked the date of the first post: 06/24/2012. So it is really true. Two years are a long time and since the last birthday post a lot has happened again. For that reason I’m going to try to sum that up for you. And don’t worry: I’ll try to keep this birthday post shorter than the last one. ;)

Origins and goals

I started the EERIE project because I wanted to really “get into Linux” instead of only using it. I didn’t know at all where that journey would take me when I set the initial goal to compare Linux desktops. In the first year it was mostly desktop centered posts that I wrote. Besides that I evaluated which Linux distribution would fit my needs, how a live cd is created, etc. In the last few months my interests shifted and wrote about other Unix-like systems as I begun exploring Linux’s “neighbors”.

What has happened in the last year?

In the second year I tried to get back on track and continue with the toolkit tests. But I was soon distracted from it and drawn towards different fields. The new focus clearly was package management, package building and the creation of a Linux distribution.

Since I was pretty confident that I would succeed in putting together an experimental light-weight Linux distribution, I registered a website for it. It has been severely neglected and not received any updates since October… Not having done anything with HTML for about 10 years, using a free template had been an obvious choice to begin with. In the mean time I invested a few hours to learn proper HTML 4.01 and some CSS but I have no idea when I get around to re-design the website. These things are moving forward very slowly.

A short series of posts dealt with the updating of an old Linux distribution where active maintenance had stopped several years ago. It was interesting to do and has been of interest for others, too, since I got a bit more of feedback on that topic.

The most important thing was two distributions that I created: An Arch-like distribution for i586 and one experimental one where I tried to build as many packages as possible using clang, an alternative init system, etc. Both worked quite well and while I never uploaded the i586 work, the other distribution was published as Arch:E5.

In addition to that I’ve got in contact with some nice people and interesting projects which is something I value greatly!

Blog & statistics

The blog’s monthly visitors

As you can see in the picture, the monthly visitors have increased in the second year over the first. In most months I had between 650 and 700 visitors. Exceptions were September with less than 600 hits and October with over 750. The blog has exceeded 10.000 total visitors clearly and features over 30 comments now.

The wordpress Trophy Case

While the wordpress “Trophy Case” is basically just play, I actually like it because it also shows the date of the day when the “medal” was “earned”. This makes the whole thing graphically polished statistics with some actual value.

Hits by country

I’ve had visitors from 114 countries around the earth and thus the white parts on the map are getting fewer and fewer!

Future

I’m having far less time for my computer projects compared to when I started the blog – and I think that really shows. In June I’ve had the lowest monthly hit count since more than one year (at least right now; the month isn’t over yet).

The reason for it is that I’m no longer studying at the university (which gave me enough free time). During the last year I’ve moved to another federal state, sought a job and moved again when I found one. And if my job (as well as the hours that I spend each day to get there and back home again) didn’t mean enough work and time lost, I’ve got even less spare time for another reason. For a positive reason fortunately: The birth of my second child!

So what does that mean? Currently it’s a bit hard to publish at least one new post each month but I’m not willing to retire yet! I just can’t make any promises on exactly what I’ll be able to write about in the forseeable future. Will it be toolkits again? The musl based Arch-like distribution? Some BSD things? Maybe a bit of everything or maybe something entirely different. Who knows? (I don’t!)

Software licenses (pt. 1): A general introduction

This is obviously not about the EERIE distro or Arch:E5. The reason for that is simply that I didn’t succeed in getting everything working. And to be honest, I didn’t have much time to attempt it in the first place. My second child was born this month and I guess everybody would agree that family comes first. So here’s the first post of a series that I had in mind since well before Christmas. Time just goes by so damn fast!

I’ve been thinking about software licenses a bit and decided to write about it. It’s a rather special topic for sure. Many programmers like dealing with licenses just as much as they like to write documentation: Not at all. For that reason a lot of people who support open source software decide to take the easy way and simply GPL their code.

However licensing is a very important thing and should be taken seriously. This article is meant to give a quick introduction – while avoiding the major problem of the whole license issue: Being boring for most people!

What is a license?

Ever read a typical Microsoft EULA (“End User License Agreement”)? No? Well, it’s not just you. Most people haven’t. Still you probably should. Or at least read a bit of it. Even if you didn’t read the license, you’ve agreed to it if you’re using Microsoft software. And that means that you are bound by its content – no matter if you’re in fact ignorant about that.

But what is a license? In fact you can think of a license which comes with a program as a blueprint. It is a draft of what the author proposes to you. Simply put: If you accept it, it will become a valid legal treaty. Yes – accepting a license isn’t some neglectable action. In doing it, you’re signing a treaty which legally binds you.

In general licenses contain various items which permit and prohibit certain actions. For example you may be granted the right to install one copy of a program on one computer and use it. You’re usually forbidden to analyze the program by means of reverse-engeneering. However there may be additional requirements being imposed on you. Probably you have to pay a monthly fee to continue using some service or you’re required to supply a valid address and keep it up to date.

Once you understood that by accepting a license you’re signing a treaty, you might no longer do so carelessly. After all you’re legally accountable if you knowingly or unknowingly violate it.

There has been a steady development in terms of proprietary licenses over the past decade. Many of them are getting stricter and more intrusive all the time. There are probably some quite nasty passage in the next license you’re going to “agree” to. So you should probably care about it.

(Why) do licenses matter?

Software – like any other artificial thing – doesn’t emerge out of nowhere. It has one or more author(s) who wrote the program and dedicated time and effort to that project. Now it is absolutely comprehensible that the author gets to decide what he or she would like to with it. The creator of some software project may decide to keep it private, try to sell it or give it away for free. And of course it’s all the author’s decision whether to open-source the project or to keep it close.

Depending on the nature of the program either path may seem like a good choice. The really important thing however is that each possible decision is perfectly legitimate. Who creates something decides. So if a coder makes the decision to give the source to his program away to the public – then this project is open-source and we can do all the good things with it, right? Wrong. Unfortunately.

Our coder may give the source of his or her program away for free but still remains the sole copyright holder. If the code is made available to you that implies that you may take a look at it. Certainly a nice move of the author. But other than that you’re not actually allowed to do anything with it. It is the intellectual property of another person. So without permission you may not redistribute it, are not allowed to modify it or in fact to actually put it to some use! Yes: In each of these cases you’d have to ask for permission first.

Let’s assume you cannot reach the author since he or she got a new email address and didn’t update the project page. Or the author simply doesn’t have the desire (or time) to answer mail asking for permissions. Well, if you’re a coder yourself, the source code may help you to get an idea on how to solve certain problems. But that’s pretty much it. If you need some functionality you’ll have to repeat the work already done and reimplement it because you’re not allowed to reuse the code despite it being publically available.

So for these reasons the answer to the question in the headline can only be: Yes. Licensing does matter!

What’s next?

I currently have three things in the making: 1) The basic repo of a musl-based Arch-like Linux distro 2) Quite some i686 packages for ArchBSD 3) An article about “Optimistic and pessimistic licenses”. And 4) I have no idea how much time I can spend before my screen in the coming weeks. ;)

Eerie Linux and Musl libc

Happy Easter, everyone! Guess it’s about time I admit that my previous post was just an april fools, right? It’s been 20 days already after all! Well, there are reasons why I couldn’t do it. Two actually, if you disregard obstacles due to real life!

Keyboard issues

The first one is that I’m currently trying to get used to an alternate keyboard layout called Neo². You’ve never heard of it? We’ll that’s actually quite likely as it is neither well-known nor in wide-spread use – even in my country.

It’s basically an ergonomic keyboard layout optimized primarily for the German language (but also well fit for English as many of us frequently use that language, too). It uses six(!) layers and quite some dead keys, thus allowing for many, many more characters that you can type with it. Have you heard about dvorak (wikipedia article) for example? Then you know the basic idea of rearranging keys (and the advantage of having more characters easily accessible, like e.g. the whole Greek alphabet, is pretty obvious).

Neo² promises even more typing speed once I learned it properly and got some experience with it. I can already see that this claim makes sense as the keys are re-arranged very reasonably. However for the time being, it makes me type damn slow! Do I hear anybody laughing? Well, chances are that there’s an alternate keyboard for your language, too. Why don’t you try it out yourself and share some of the pain having to relearn something you’ve gotten used to for way over two decades? ;)

Not really all an april fool

And the second reason is… that most of what I wrote was not actually an april fool! Ok, some of it was. While the size of the TinyCore kernel is true (I really built it), I do not intend to use it as the default kernel. Also E5 won’t switch to musl – because I consider E5 a project on halt. What IS true however, is the fact that I’ve been experimenting with musl for quite a while now. In fact I actually plan to build another experimental Arch-like system which will be based on musl.

This is clearly the most challenging experiment I’ve made so far. Many standard packages are tested only with glibc and may require excessive patching to play together with musl nicely. Fortunately one of my favorite Linux distributions, Alpine Linux, decided to switch to musl! Thanks to their experience with µclibc – another alternative libc – it’s without question that they have the technical knowledge to make this happen. I have been very excited since I read their announcement and had been following the “edge-musl” branch closely. Now only ten days ago they dropped the “edge-musl” branch. First I was shocked. But then I realized that musl is now the standard libc for “edge”!

Alpine has been a great resource for me while I was trying to build an Arch system on musl. Musl is also available on Arch thanks to the AUR, but there it’s only a secondary libc installed with a different prefix. It’s meant more or less for static linking only. The great news: There seem to be quite a few people around who are interested in both Arch and musl. So why not combine the two?

Project status

It didn’t really take me long to get a musl-based mini-system working in a chroot. Adding more packages and making the beast boot was actually quite painful. In some regards I had to resort to what I’d consider “cheating”: So far mkinitcpio is completely broken and I just copied an initramfs image from my previous Arch:E5 project. I was really happy, though, when I finally got the whole thing booting…

Then it took a few weeks to get pam and logging in working and runit (the init replacement I’m using) to spawn some tty… Welcome to a bare system that won’t provide much more functionality than just coreutils and the like! Next I added a text editor so messing with configuration files became easier and prepared all the dependencies for pacman. There were quite some struggles along the way but in the end I succeeded: Eerie has pacman now!

The logical next step was adding the basic development packages. Most of them even built without any special means necessary. However GCC proved really troublesome to build. I was stuck on that one for weeks (and even though it were weeks with little time on my hands, it proved to be a real blocker). In the end I gave in and used what Alpine provides (did the same thing for gcc-libs before, anyways!). So I at least have a working GCC.

Getting the net to work has been giving me the creeps. I have failed to get xinetd to compile against musl and I’ve also failed to find an alternative to it that would do the job instead. Now I know why many distros use busybox together with a dhclient script… Definitely have to take a look at how Alpine does it, but I’m not really knowledgable about openRC and would like to look into that one first. Maybe I’ll find a little time for that soon. Who knows. The most important thing is that network connection with EERIE is possible.

I’ve built a few packages natively on my EERIE system but most of them were built externally. My goal is of course to be able to build all of them on EERIE and thus make the project self-hosted.

Open development

So far I’ve done all my projects in a semi-open way. I came up with an idea and tried to cook something up behind closed doors. When I thought that it was ready, I made it public and that was it. However these projects were more or less personal experiments that I shared with anybody who might care. Now I’d like to take the next step and set up a project that’s actually useful (while still being experimental for the forseeable future).

For that reason I set up a repository to store all PKGBUILD files for EERIE using a DVCS (distributed version control system) called Fossil. It’s way less known that e.g. git, mercurial, etc., but it provides some nice extras. Look here for a little how-to on cloning the repository.

Join the feast!

Building an Arch-like Linux distribution on musl is a gigantic task. For that reason I could really use any bit of help I can get. If you care for Musl and like Arch, please consider supporting this project. And no, I’m not asking for money. If you think you have a bit of free time on your hands and the skill (or will to learn since that’s what we all start with) to mess with package building, just get in touch with me! Oh, and even if you don’t think you can help by making more packages available, you may just invest the one or two minutes that it takes to write me a comment here and show some interest in the project. That would also help and is greatly appreciated!

What’s next?

I’m busy getting the repos with binary packages up so that an EERIE system can be pacstrapped. I’ll try to make a release announcement as soon as possible. Probably in early May. Please bear with me!

Arch:E5 ditches eglibc and goes for musl libc!

Those of you who follow the development of Linux for embedded devices (or simply older hardware) will probably have noticed, that eglibc is effectively dead. According to their website “EGLIBC is no longer developed and such goals are now being addressed directly in GLIBC.”!

E5 and eglibc

Arch:E5 was built to be a bit lighter than todays mainline Arch. To do just that it’s obviously necessary to deal with the root of the trouble (yeah, a pretty lame pun, I know). The standard C library is – together with the kernel – the very heart of every Linux distro, that’s for sure! And since ordinary glibc is quite a memory hog, eglibc was a pretty self-evident choice to keep things a little smaller and prettier. But as this variant of the GNU C library will cease to exist after the 2.19 branch, E5 had to look for alternatives.

There are actually quite a few alternative C libraries around. Dietlibc for example. But it’s primarily meant for static linking. Yet there are more candidates. Like µclibc. A pretty nice libc actually which is also already proven and tested: There are even a few distributions built upon it. So could that be an option for E5? Nah, not really! Wanna know why not? ’cause it would be rather boring. And even worse: It has already been done for Arch and is even described in its own page on the ArchWiki!

So – is E5 doomed to eat humble pie and return to glibc, losing one of the main characteristics which made it diverge from mainline Arch? But no, fear not dear brethren! Luckily for us there’s also Musl, a rather young libc which you may not even have heard of. It has reached version 1.0 just these days and thus it practically calls for being used in place of our old C library! There are a few distros already which are based upon musl. But everything’s experimental and pretty much a mess to work with. In other words: Absolutely ideal preconditions!

I’ve been secretly working to make E5 run with musl as the distro’s libc for about two weeks now and just a few minutes ago I succeeded in getting E5 “Musl edition” to run! It was quite a bit of work and took quite some time. So far I have not spoken a word about it with anybody. But today’s the big day to announce it to the public!

Like the idea of Arch based on musl? If you don’t have a clue why you should like it, you may want to take a look at this table which compares musl to other libc projects. Convinced? Great! Now as proof that I’m not lying about the successful porting, here’s a screenshot which should confirm my claims:

Arch:E5 Musel’s boot screen!

Kernels…

While I was at it anyways, I thought that I might change the kernel as well. Ok, I have to admit that I’m still not cool enough to use some BSD kernel. But it’s clear that E5 (being an experimental distro!) needs something more… extraordinary. In the end I settled for a minimalistic Linux kernel by compiling one with the kernel settings from the TinyCore Linux project.

The result is really astounding if you ask me: That kernel image is just 2.5 Megs in size!! No, I’m not kidding. Don’t believe me? I can well understand you. But behold!, all you sceptics out there, here’s one more screenshot of the secret project for you:

Arch:E5 Musel with a TinyCore-like kernel!

So what do ‘ya say now? The “Arch Linux 3.10.33-1-LIBRE-LTS” line?? Uhm, well… *cough* Guess I gave that kernel a wrong name then! Yes, exactly that must be the case…

What’s next?

The logical next step would be publishing an E5-Musl repository, wouldn’t it??

Arch:E5 update and more repos (x11, gtk, fltk)

Finally I found some time to update and expand E5 a bit. The biggest news is surely the release of the e5-x11, e5-gtk and e5-fltk repositories. On the top of that packages have been updated and more than 80 new ones added (mostly to extra). This update also fixes a few issues that E5 had before.

Fixes

Most notably the docbook issue has been resolved. It took me quite a while to figure out what was wrong there. I was able to narrow down the problem to be solely related to the docbook-xsl package as simply replacing the E5 one with the package from Arch solved the problem. This made me guess that probably some other E5 components (docbook-xml?) were semi-broken. I tried this and that to no avail. Finally I decided to build a package on a pure Arch system using the PKGBUILD from E5. Result: Broken package. Build the package again with an unmodified Arch PKGBUILD? Result: Working. Hm! Since it is an arch-independant package I hadn’t really changed anything except for setting the epoch value. And in the end it turned out: Leaving out epoch makes the package work, setting it breaks it!

Even though it bugs me to make an exception the epoch “rule” for this package, I’ve removed the epoch value for docbook-xsl for now. If anybody has any idea exactly what’s going on there, feel free to tell me. I’m very interested in it but don’t have the time to dig any deeper on the issue in the forseeable future.

For some reason I had forgotten to disable the libsystemd dependency on the polkit package. And since E5 doesn’t come with systemd, polkit could not be used. This bug has been corrected.

There were two or three smaller issues I was able to solve during the last weeks but I didn’t write them down and can’t really remember what they were.

The Equinox Desktop Environment on Arch:E5

Updates

Quite a few packages have been updated to newer versions. Most of them are from the skel or default repository but a few other ones were updated as well.

Here are some of the most important ones:

  • linux-libre-lts-5:3.10.33-1-i686.pkg.tar.xz
  • ignite-5:20140212-3-i686.pkg.tar.xz
  • eudev-5:1.5-1-i686.pkg.tar.xz
  • tzdata-5:2014a-1-any.pkg.tar.xz
  • bash-5:4.3-1-i686.pkg.tar.xz
  • openssh-5:6.5p1-2-i686.pkg.tar.xz
  • openldap-5:2.4.39-1-i686.pkg.tar.xz
  • pulseaudio-5:5.0-1-i686.pkg.tar.xz

New repositories

However the main news is clearly that the new repositories “x11″, “fltk” and “gtk” are available now. Like their names suggest, they hold packages which provide graphical programs which run on pure X11 or depend on the FLTK or GTK+ toolkits.

To install a very light-weight desktop, simply install the package “ede”:

pacman -S ede

Or if you want a full-blown, yet traditional desktop, the “mate” (and probably “mate-extra”) group(s) may fit your needs:

pacman -S mate

I had also intended to package a game for demonstration and since the new widelands beta was released not too long ago, I tried to prepare that. Arch:E5 has all the packages needed to build it and widelands compiles fine, too. Unfortunately it segfaults upon execution… And since I don’t have the time needed to look into that, it’s unfortunately no widelands right now. :(

The new MATE 1.8 on Arch:E5

The furure

I think that Arch:E5 has already grown quite large for the quick project that it is. Right now it consists of 700+ packages which are roughly 1GB in size!

While it has been an interesting project, I’m not really sure what to do with it now. Most of what I was aiming for has been accomplished and the next step would now be bug hunting and adding even more packages. In other worlds: Nothing spectacular. In general I’m up to the challenge to maintain a linux distro for a longer time. However there’s of course no reason to maintain anything that isn’t of any use to anybody.

For that reason I’ll just let Arch:E5 live for a while doing the occasional update now and then and see if it is at least remotely interesting for somebody.

What’s next?

There are a lot of things which I’d like to do next. However I haven’t really decided, yet. So it’ll have to be a surprise!

[Edit: Added pictures]