Friday, June 29, 2007

MaraDNS release

    Since I am about to go on a road trip, I have released MaraDNS today. This is a bugfix-only release. Testing earlier this week found two significant bugs in the code. This release fixes both bugs. This release is suitable for testers of MaraDNS, and for distributions where it is clear that the distribution includes cutting-edge releases of software that have not been fully tested. I had one person ask for a Debian package of MaraDNS 1.3 this spring (I guess some people don't know how to type in tar xvjf maradns- followed by cd maradns-; ./configure; make; su followed by make install). I am not familiar with what does or does not belong in Debian-unstable or Debian-testing, but it may be time to move up the "bleeding edge" release of Debian up to 1.3.

    The 1.3.07 branch will become the next stable branch of MaraDNS. The only changes to this branch that I will make before I christen it stable are adding additional SQA test, documentation changes, and, of course, bug fixes.

    In the meantime, is the current stable release of MaraDNS. This release is, barring a critical security hole, updated once every three months. The last update was May 18; the next update to the 1.2 branch should be in mid-August.

    MaraDNS is available on the MaraDNS download page.

    Thursday, June 28, 2007

    MaraDNS snapshot released

      I have released a new snapshot of the betatest branch of MaraDNS today. In this snapshot, I fixed the bug that was causing MaraDNS to generate invalid DNS packets. Basically, the csv2 parsing code was sometimes allowing TXT chunks to be over 255 bytes in length, which does bad and unexpected things, but is not a security problem.

      I fixed the bug in both the 1.2 and 1.3 branches of MaraDNS (the patches are different in this case). The 1.2 patch will eventually become part of MaraDNS when MaraDNS is released mid-August. I will probably make another 1.3 release of MaraDNS, so people have something to work with while I go on my road trip next week.

      The 1.2 patch is here, and the 1.3 snapshot is here.

      - Sam

      Wednesday, June 27, 2007

      MaraDNS snapshot uploaded

        I have uploaded a new snapshot of the beta-test beanch of MaraDNS today. I have changed the test regression that makes sure the bug I fixed earlier this week in askmara stays fixed. I have changed the test to use a mini-UDP server to generate the packet that puts older versions of askmara in an infinite loop. This way, when I fix the bug in the server that generates the bad packet, I can still make sure askmara can handle these kinds of malformed packets gracefully.

        It is here.

        As an aside, I will be on vacation the first week of July, and will be unable to answer email or update MaraDNS during that week.

        - Sam

        Monday, June 25, 2007

        Puppy Linux: DO NOT USE

          DistroWatch has an article about Puppy Linux. Executive summary: Do not use this distro. Do not touch this distro. Do not go anywhere near th is distro. You have been warned.

          - Sam

          Sunday, June 24, 2007

          MaraDNS snapshot updates

            I have released two updated snapshots of MaraDNS today. One snapshot is the stable snap; this incorporates changes that will make it in to the release of MaraDNS that will happen (barring a critical security hole) in mid-August. The changes in this branch are:
            • Back port of memleak fix when bind_star_handling has a value of 2 plugged (2-line fix)
            • Backport of changes that make it so bind_star_handling with a value of 2 does the right thing
            • Bug in askmara that would cause askmara to be in an infinite loop when receiving certain kinds of invalid packets fixed (1-line fix).
            I am also making a snapshot for the beta test branch available today. The changes for this snapshot are:
            • askmara bug fixed
            • SQA regressions added: Askmara bug regression; DNS truncation regressions

            The MaraDNS stable snapshot and MaraDNS betatest snapshot are available on the MaraDNS webpage (click on the links in this sentence).

            Friday, June 22, 2007

            Some samples of my bitmap font

              Here are some samples of my bitmap font, Sandals:

              As you can see, the font is quite pleasant to read on the screen; I have no problem use this font to read text on a screen for hours at a time. The italic text is not as pretty as the roman and bold faces, but is perfectly readable, and I have better things to do with my time than perfect the font. It's good enough for me. :)

              Anyway, Sandals can be downloaded here (Click on the link at the top).

              - Sam

              Thursday, June 21, 2007

              MaraDNS released; beta-test cycle begins

              • I generally release major new versions of MaraDNS on solstices. I released MaraDNS 1.0.00 on June 21, 2002; MaraDNS 1.2.00 on December 21, 2005, and MaraDNS 1.3.01 (Starting with 1.3, there are no longer .00 releases) on December 21, 2006. In keeping with this tradition, I release the first betatest release of the 1.3 branch of MaraDNS today:

                This is a betatest release. No, not "beta" the way Google means "beta" ("beta", in Google parlance, seems to mean "we're too lazy to have a real release cycle for our web apps"). This means that no new features will be added to the MaraDNS 1.3 code before it is declared stable. The only changes before I declare 1.3 stable will be more SQA tests added, documentation improvments, and bug fixes.

                The two big features added to the 1.3 branch are:
                • It is now possible to have djbdns-style delegation of subdomains with the recursive resolver
                • BIND zone files are now supported, via a Python script that converts BIND zone files in to MaraDNS-1.3-compatible zone files

                In terms of the MaraDNS 1.0 branch, the only changes that will be done with that branch are "typo-bugfixes" and security fixes. When a say a "typo bugfix", I mean a bugfix that requires changing 10 lines or less of code. MaraDNS 1.0 "how do I" questions have not been answered by me for about a year (but you may be able to get support on the mailing list). Typo-bugfixes will only be applied with the MaraDNS 1.0 code for six more months. After that, only security bug fixes will be applied to MaraDNS 1.0. On December 21, 2010, I will stop supplying security fixes to MaraDNS 1.0.

                In terms of the MaraDNS 1.2 branch, this is still the stable branch of MaraDNS. Since, however, 1.3 is now frozen, I will start to phase out the kinds of bugs I will fix in 1.2. Security, bugs, of course, will continue to be fixed. As will typo-bugs. However, any other bugs will need a compelling reason for me to fix. For example, I will no longer fix RFC-compliance bugs in 1.2 unless you can show me a serious real-world problem the lack of RFC compliance is causing.

                Anyway, MaraDNS is available for download here:

                I encourage people to help me beta-test and find bugs in the 1.3 branch.
              • Wednesday, June 20, 2007

                Safari for Windows ; MOAM-CD update

                  I think Safari for Windows is a very good thing. Why? Because it is another nail in the "This site only works with Microsoft Internet Explorer" (or, likewise, the "This site is optimized for Netscape" 1990s web sites) coffin. There are people out there who may not use Firefox but will use Safari; as long as more people use web-standard compliant browsers instead of IE, the web wins because people write pages to the standards instead of making them render only on one browser.

                  And, yes, I do remember the bad old days of 2002, when web sites I had to go to for my school did not work in anything besides IE.

                  Two planned updates for the next version of MOAM-CD:
                  • I will remove the NetBSD FTP client and replace it with the FTP client that (presumably) DeLi has. It seg faults whenever it tries to open up a connection to a remote FTP server.
                  • I will add the Unichrome drivers, since motherboards that use this chipset are very common in Mexico, and the drivers are, sadly, not part of X proper.
                  • I am getting a kernel panic when starting the IDE driver on one (AMD-64) system; I will make a special initrd with the IDE driver as a module to try and troubleshoot this.

                  Tuesday, June 19, 2007

                  MaraDNS 1.3.06 released

                    MaraDNS 1.3.06 released. This will be the last 1.3 development release of MaraDNS. The bugfix cycle for MaraDNS starts Thursday; will be a betatest release.

                    Anyway, check it out at

                    Monday, June 18, 2007

                    MaraDNS and MOAM-CD updates

                      Well, it's finally possible to get my email address on my contact page again. It was not a trivial project; basically, when the hard disk crashed and we reinstalled the system, the PHP permissions were changed to not run a external programs. Hence, I had to take the encryption core for my email address, and convert the code from C to PHP. This took me about three hours to debug and implement. But, finally, the site is fully up again and I'm looking forward to getting people asking me inane questions already answered by the documentation, or reporting bugs that have long since been fixed.

                      I also have a new snapshot of MaraDNS 1.3 that I made yesterday and have uploaded today. I have started some unit tests; basically, I have code that triggers the various known memory leaks, in order to verify that these memory leaks no logner exist. It can be downloaded here:
                      MaraDNS 1.3 snapshots

                      I will release 1.3.06 tomorrow and on Thursday.

                      I have also released MOAM-CD 0.5 today. The changes from MOAM-CD 0.4 are:
                      • The fonts have been updated to have boldface (attractive) and italics (unattractive but usable)
                      • I have fixed the problems with the permissions with /tmp
                      • I have added the editor nano
                      • I have fixed curses applications so that they can run in X
                      • I have changed the default home page in Firefox
                      It is available here:
                      moam-cd-0.5.tar.bz2 (18 meg file)

                      Thursday, June 14, 2007

                      Sandals font update

                        I have done a lot of work on Sandals last night and this morning. The big change is that I have increased the vertical spacing in the font; it is too cramped, which makes it harder to read otherwise. I have also done some touchup of the bold face and italic face, and fixed some minor inconsistancies in the bdf files that made them not completely usable under X.

                        All I need to do now is finish up the touchup with the italic faces, then I will make a formal release of these fonts. Updated snapshot here:


                        - Sam

                        Tuesday, June 12, 2007

                        New MaraDNS snapshot; Sandals font update

                          I have release a new MaraDNS snapshot today. This snapshot hopefully solves the lingering RFC 1034 compliance issues with star records. I will post a more complete description of the patch on the MaraDNS mailing list. It is here:

                          Last night, I wrote a gawk (not AWK, since it uses strtonum()) script that automatically makes boldface and italic versions of bdf fonts. It makes a bold font by taking the font, making each glyph one character wider, then or-ing each glyph with a version of the glyph shift one bit to the right. This works quite well. The italic script shifts the glyph one bit to the right above a user-specified height; the best height to do this shift depends on the font and the size of the font.

                          I was able to make an attractive version of the italic face, and an attractive bold face with this fairly simple script. A snapshot, along with an updated italic face, is here:

                          Monday, June 11, 2007

                          Sandals font update

                            I found out this weekend that the 15 and 17 pixel sizes of Sandals had their accents broken, possibly by a Fontforge bug. Hence, I have an update for this bitmap-only font available:


                            This package also includes my first try at making an italic version of this font. It doesn't look that great and needs to be revised, but at least it's a start.

                            - Sam

                            Friday, June 8, 2007

                            MOOF 0.4 released

                              Today I release MaraDNS on one CD 0.4. While this version is not 100% bug free, it is a usable system that should, given a stock DeLi Linux system with all packages installed, will make a tiny live CD ISO image. Should one have Firefox for DeLi Linux installed, the scripts will add Firefox to the live CD. The live CD, which is about 35 megabytes/33 mebibytes in size, consists of:
                              • Comple *nix scripting environment, courtesy of a modified Busybox 1.5.1 that compiles in DeLi
                              • X11, complete with video card detection scripts
                              • Dhcp client and network card auto-probing script
                              • Playback of mp3 files with XMMS
                              • Video games: Freecell (complete with difficulty levels), Minesweeper
                              • C development environment for compiling (complete with make) basic non-gui C programs
                              • DNS server: MaraDNS
                              • Scripting languages: ash, awk, and sed (Again, from Busybox)
                              • Text editor: vi (again, from Busybox)
                              • Window manager: a slightly patched FVWM version 1
                              • Firefox 1.5 web browser
                              • Security: Built-in iptables firewall for protecting the system from port scans and other nonsense
                              • Security: Firefox web browser runs as non-root user
                              • NetBSD ftp client, that has up-arrow history and tab expansion
                              • GNU wget, for getting files from remote web sites
                              • Fast bootup: The system boots up in about 15 seconds, even on older computers

                              The disadvantage is that there isn't any documentation for this system. So, I will supply some documentation here:
                              • No need to log in. Just hit "enter" and you will get a root shell prompt
                              • Since I forgot to do this, after you log in, type in chmod 1777 /tmp so that Firefox can download and save files
                              • To configure X, type in /etc/Xsetup
                              • To start X once configured, type in xinit
                              • To autodetect the ethernet card, type in /etc/probe.ethernet
                              • To get an IP address via DHCP, type in /etc/get.dhcp.ip. If you don't get an IP right away, you may have to try a few times
                              • To auto-detect the sound card in your computer, type in /etc/probe.sound
                              • Once you start X, to get a list of programs, left click anywhere where there isn't a window. RXVT is the terminal emulator; Firefox, of course, is the web browser; XMMS is the mp3 player; and Freecell is a solitaire card game

                              On a standard "Hockey rink" business card CD, you can fit not only this complete Linux system, but also about 17 mebibytes of other data. I myself have used this extra spce to fit one song I like (Glyder by Jonn Serrie), my private SSH key (encrypted), a bzip2 compressed tarball of the Bible, and a number of English lessons.

                              It is available for download here:

                     (Warning: 18 meg tarball)

                              Thursday, June 7, 2007

                              MOAM-CD almost ready

                                I finally got past the kernel problems. Basically, it looks like is not happy with zlib_inflate being compiled in to the kernel. The workaround is to have zlib_inflate be a module, and insert the module in initrd before inserting the cloop module.

                                Once I got past that hurdle, the next problem is that, when the kernel is compiled with devfs support, the modules call devfs routines. Since I don't like devfs; the code was abandoned years ago and the location of devices is different than where they are in newer 2.6 kernels, I have had to recompile all of the modules. They take up a little less space since all the devfs nonsense is not in the modules.

                                At that point, I was able to boot and run the system. I am very pleased with it. The only final thread I need to wrap up is international keyboard support; looks like I need to add xkbcomp and make sure the directories compiled keymaps go in to is a rewritable directory. I also need to make sure /tmp has 1777 perms.

                                I'm using the system right now. I haven't tested it yet, but it should be able to, after an hour or two (less time if you have one of those fancy Pentium 4 computers), make an iso image that is only a little over 35megs (about 33mebibytes) in size. Complete with Firefox browser, C compiling environment, *NIX command line environment, and even a couple of small video games.

                                Anyway, I haven't tested it, but it should compile fine and make an iso image from a stock DeLi 0.7.2 install. If you install the firefox package for deli, the iso image will include firefox.

                                It's here:

                       (18 meg tarfile)

                                Wednesday, June 6, 2007

                                Moam CD update

                                • OK, I am a lot closer to getting a kernel that works as a DeLi Linux live CD boot CD. Essentially, all I need is DeLi's kernel with initrd enabled, for the CD auroprobing and loopback mounting. The reason why modules weren't working with DeLi Linux was because DeLi's kernel was compiled with versioning information for modules turned off and my kernel was compiled with this turned on. This made my kernel unable to load the modules from DeLi's kernel. So, I can now load DeLi's kernel modules. The problem now is that I can't load the cloop module, even though (as far as I can tell) I added the Zlib compression library to the kernel. It may be, that to include Zlib with the kernel, I have to have both zlib inflate and deflate enabled, not just inflate. I will deal with this tonight.

                                  The Linux kernel is the #1 pain in the ass to deal with when making a distribution.
                                • Tuesday, June 5, 2007

                                  Moam CD update

                                    Well, I'm almost at Moam CD 0.4 Last night, I was able to add the C development environment. Since DeLi is based on uClibc, the basic C development was tiny--I was able to get all of the tools and include files needed to compile MaraDNS and still have the entire system fit in under 34 megs. So, it looks like I will very easily be able to fit all of the system on a Business card CD.

                                    The only thing I have to do is get the kernel and initrd to work. The insmod with initrd couldn't even see the printk function in the kernel, so it looks like I will need to recompile busybox in the initrd. My plan is to make busybox static there, so I can have a static busybox which will allow me to unmount the CD correctly when shutting down, which will make getting the CD out after reboot easier.

                                    The latest MOAM cd is here

                                    - Sam

                                    Monday, June 4, 2007

                                    MOAM-CD and Sandals font updated

                                      I worked this weekend on the MOAM-CD project. I have finished the roman (non-bold, non-italic) version of the Sandals typeface at three different sizes: 12 point, 14 point, and 16 point. All three sizes are very readable, and allow me to have an attractive readable screen font on the MOAM-CD without having to abuse the non-copyrightable status of fonts in the US.

                                      Here is a copy of the fonts:

                                      I have also made an improvment to FVWM, where it can (somewhat) work around problems of laggy servers that don't always do "focus follows mouse". The hack is that there is code to make sure a window gets focus when it is automatically raised.

                                      In addition, a compressed cloop filesystem (as opposed to cramfs) is made when making the CD image. I have updated the initrd to use cloop instead of cramfs. I have not had a chance to test this yet, because DeLi doesn't have mkisofs. So I have gotten the mkisofs code and will set up MOAM to compile mkisofs so the CD image can be made.

                                      The compressed image, with Firefox, Freecell, and the drivers, but without the C development environment, is only about 28 megs in size. When I added C compiling to the old CentOS 3-based Live CD, the image became about 15 megs bigger. Since DeLi is leaner, and doesn't use glibc, I think it will be leaner. I am guessing a Business card CD image with C compiling support will be about 40 megs in size; enough extra space for extensive customizing.

                                      Anyway, I also need to get aumix, or another simple program to adjust /dev/mixer, to work in this system.

                                      Here is a copy of the current code that will soon be able to make a live CD:

                             (13 meg tarfile)

                                      Saturday, June 2, 2007

                                      Font update

                                        I am continuing work on my bitmap typeface. I have finished the typeface at 17 pixel size, and am now working on the 15 pixel version of the typeface. All ASCII and most IPA (Well, the IPA symbols that I will support in this font) symbols are done at 15 pixel size. The only thing I have to do are the accented letters. Then I will work on the 13 pixel size typeface. Once that is done, I will make "Cheap and dirty" bold and italic typefaces by having a program make the leters thicker, and using Fontforge with the DejaVu script to italicize the font.

                                        I, alas, have no sample to show you guys. I should have things ready by Monday. I hope.