mksh – The iShell
Try this:
$ cvs -d _anoncvs@anoncvs.mirbsd.org:/cvs co -PA mksh $ cd mksh $ cat >iBuild.sh <<-'EOF' DEV=/Developer/Platforms/iPhoneOS.platform/Developer SDK=${DEV}/SDKs/iPhoneOS2.0.sdk CC="${DEV}/usr/bin/gcc-4.0 -arch arm" CPPFLAGS="-I${SDK}/usr/include" CPPFLAGS="$CPPFLAGS -I${DEV}/usr/lib/gcc/arm-apple-darwin9/4.0.1/include" CPPFLAGS="$CPPFLAGS -F${SDK}/System/library/Frameworks" CPPFLAGS="$CPPFLAGS -F${SDK}/System/library/PrivateFrameworks" CPPFLAGS="$CPPFLAGS -F/System/library/Frameworks" LDFLAGS="-L${SDK}/usr/lib -L${DEV}/usr/lib/gcc/arm-apple-darwin9/4.0.1/lib" export CC CPPFLAGS LDFLAGS exec "$@" EOF $ mksh iBuild.sh mksh Build.sh -r $ file mksh
Mach-O executable arm
Of course, you need the iPhone 2.0 SDK on your Mac for this (and, presumably, an installed native mksh… otherwise just change the above instructions a little.
We haven't tested it yet, but if gecko2@ can figure out how to run mobileterminal.app inside the emulator, he will… and possibly jailbreak his iPhone G3.
Maybe this fact (availability of mksh) strengthens our point.
In the meanwhile, gecko2@ has found the geocaches I placed.
Update 18.07.2008 12:42 – we have a fat binary with five architectures (amd64 arm i386 powerpc ppc64) now. This is the iShell, indeed.
As requested, Benny has written to Apple, Inc. about inclusion of mksh. Lucas “laffer1” Holt of MidnightBSD has said to follow, as has Andreas “gecko2” Gockel, the Fink maintainer for mksh. Link to this entry.
Lucas actually said he would care more about and use mksh(1) if it were integrated in Mac OSX, as most MidnightBSD developers (like Benny) do most of their work on a Macintosh. He has integrated mksh in his operating system quite some time ago.
mksh is also the default shell, including /bin/sh, on FreeWRT Embedded GNU/Linux.
Andreas already has run tests for using mksh(1) as /bin/sh on Darwin, although I did not request that personally, and brought up the question of /etc/profile adjustments and ~/.mkshrc integration. (FreeWRT has a changed system-wide profile including a system-wide copy of the mkshrc file; other possible ways would involve setting $ENV or (preferred) placing .mkshrc in the New User’s Skeleton and in root’s home directory, if existent.
Strong points of mksh: free (as in BSD, now even without advertising clause), small, fast, portable, easy to use, can run many ksh93 and bash scripts, is actively developed, and benefits from the BSD development style (central development, security focus).
To everyone with an Apple ID: please suggest to Apple to include mksh(1), write to them how good it is despite lacking popularity, how compatible it is, and just how much you like to use it. Even if you do not use it yourself, if you can follow our reasons, write to them. If you have access to other operating systems, do the same, especially with mere porting frameworks, as the OpenBSD ports tree still does not include our port, which was ready-made for committing by me to reduce workload for them.
Some unrelated side notes… Geocacheing continues:
– Dr. Pfeffer especially liked mine^WWaldemar’s Zaurus SL-C3200 with
CacheWolf running on Ewe… even if I still think it’s dead slow. Interestingly,
porting Ewe to the iPhone G3 would not violate the clause preventing you from
creating “instant messaging or real time navigation software”, and CacheWolf
itself would not have to be ported. I’d like to have more RAM on the Z though
– maybe via the SD Card slot?
SCSI sucks. And mksh gets better… IRIX,
and a bug fix. Just still no SunOS 5.5 (missing /usr on the HDD).
On an unrelated note, mksh needs
people running the current development version, to prevent mishaps like
the one with the fullwidth characters causing wrong text output. To do
that, use AnonCVS like this:
% env CVS_RSH=ssh cvs -qz3 -d
_anoncvs@anoncvs.mirbsd.org:/cvs co -PA mksh
Then, as usual,
cd mksh && (sh Build.sh && ./test.sh -v) 2>&1
| tee log.txt to build and test it. Then, especially if it fails,
send the logs to me.
Ewe is an embedded VM for some Java™ 1.1 compatible stuff. I had to fork it to use it on MirBSD and to be able to fix it. So well. It now builds on gecko2@’s Macbook. Using MirMake, of course *g* It’s even usable… which means that he can now use CacheWolf and his laptop to go geocaching.
Speaking of geocaching: more stats bragging… although a little different
this time:


Although only the first two are CacheWolf committers…
Ah, damnit. It freezes the usbserial (Prolific) driver when accessing the serial port. Well, Apple… they don’t even use GNU as(1) either.
… as you could get it. This is because gecko2@ asked for some more cvs commit eMail “spam” ☺
While on the spam topic: do not send an eMail to one of the following addresses: junk@mirbsd.org, junk@mirbsd.org, or junk@mirbsd.de, or, again, <junk@mirbsd.org>, <junk@mirbsd.org>, or <junk@mirbsd.de> (greytrapping)
Luckily, my internet uplink has been stable for more than 4⅓ days now, after repeated phoning (an 0800 number then) and resetting the NTBBA.
Some more statistics:
Geocacheing continues:
– now I’ve hidden my first two traditional micros (easy series), and
one of them even is sort of a “lost+found” directory virtual
cache overload.
BOINC continues, I’m in 9 projects now: 
While only 8 projects show up at the moment, this’ll improve once
the last project delivers in a result (it were more projects actually,
but some don’t even work on hephaistos…) – now the first WCG valid WU
returned from MirBSD! (MidnightBSD can’t, because I can’t run brandelf
on the signed binaries of the apps… sucks to be FreeBSD derived ☻☺)
Ah, and, by the way: XTaran did not like external links, especially not secure links (https) in my wlog entries, so Planet Symlink doesn’t get them now (as it pulls via RSS), but you can look at it on the wlog.
This time I did find a geocache far away from home…
… in contrast to when I was in Bruxelles, as Benny and gecko2 didn’t seem to want to have time for that (or walk at all, they coerced me into the tram). This time, I went cacheing with Tonnerre, and he kind of lined it.
Time to push opencaching in Switzerland. He said he might even drop some caches (although – jokingly I hope/suppose – his first idea was „Finding Sandro“, where the cache is a person… or his home appartement). Likewise, I’ll push OC (and, a little, TC) whereever I’m going to live or lived.
While here, special greetings to the TGIF@BS meeting which I won’t attend, as I’ll take an earlier train back home tomorrow. It was nice here, much more so than in, for instance, Berlin.
Perl is evil. But knowing the basics of other programming languages helps. I guess I’ll invest some time into learning perl better, so that I can get rid of it (in MirPorts, for example), and better understand what others try to write in it (so it can be converted to mksh if possible, or at least fixed or optimised).
People can be quite annoying at times (mostly in Jabber, but also via eMail or IRC). Hey, if I just don’t reply my current location per eMail, sending another one asking specifically for it again isn’t going to improve my mood. Neither is constantly annoying me with enquiries about whether I’m really gonna move („zügeln“) here or not, after I had already stated I’ll think over it next weekend (or so), since I have a few reasons pro et contra, some of which are orthogonal to what I see here. I concentrate on getting a feel right now. Oh, and texting me one messager after another in Jabber (or, worse, by SMS to my Natel) even if I don’t reply (which, on the other hand, does not imply I’m willing to conversate either!) just gets on my nerves. And: go fucking RTFM, and don’t fucking bother me with „the XXXXU2B controller doesn’t exist, because the vendor website only lists the XXXXU2W“ – if you know any vendor websites you should long know better than to trust them.
For what it’s worth: for building MirEwe, you need very current MirMake (at least 20080411), g++, GTK+1.2, GTK+2, libjpeg, zlib, and their development headers. It should work on GNU/Linux and the BSDs for now. No platform other than i386 has been tested yet, but I’ll take on the Zaurus running OpenBSD, I guess, as I finally got the uplcom(4) working. Ah, and to rebuild the class libraries you need ecj and paxmirabilis/MirCpio – I did the ecj part on Debian and the rest on MirBSD.
As you can read, quite a few new versions of our portable software has been released. Well, sort-of-portable, but for nroff I plan on improving, and MirMake 2 will be a lot better too, kinda like mksh.
Geocacheing continues:
Even Jonathan got hooked now. We found another (his first) two today.
As we’re sort of a big family, you’ll occasionally find German-language postings here. Don’t wonder. We have people who especially read that.
Ah, and while we’re at stats bragging:
These
were made on gecko2’s Intel Mac (Darwin), my laptop (MirBSD), and a few
even on hephaistos (GNU/Linux). MidnightBSD needs to use brandelf, thus
execution of Linux/i386-ELF binaries fails or, after branding, checksum
verification (which BOINC does) fails. Sucks to be FreeBSD derived.
I’ll be in Switzerland (Cōnfœderatio Helvetica) next week, while Benny happens to be on vacation on Mallorca (hopefully not near the war zone called Ballermann). Development may slow down a little due to that (no more 100+ CVS spa^H^H^Hmails per day, yay!) but will not stall.
19.03.2008 by tg@
In addition to my primary geocaching site, OpenCaching.de, and the commercial crap site, GeoCaching.com, which has most users, I now also registered at TerraCaching.com, which is a semi-closed site providing “high-quality” caches. Stats bar gallery:

Of course, I didn’t find any TCxxxxx caches yet. I need to get fully registered (“sponsored”) at the site first. This isn’t a big issue tho.
Update: I’m in. Nearest caches are in Blankenheim, Neuwied and België…
