Following is a list of free/libre and open source software projects that I maintain or to which I've contributed. Projects I Maintain =================== Active or Otherwise Interesting ------------------------------- * [ProteanOS](http://www.proteanos.com/): ProteanOS is a fully-free BusyBox/Linux-libre operating system binary distribution designed for embedded applications. I currently maintain 31 packages in ProteanOS. Within this project, I'm also developing a number of programs, including: - [opkbuild](http://git.proteanos.com/opkbuild/opkbuild.git/): opkbuild is a distibution build system – a set of tools for building software packages. From source packages it builds binary packages for use with the [opkg package manager](https://code.google.com/p/opkg/). - [opkhelper](http://git.proteanos.com/opkhelper/opkhelper.git/): opkhelper is a collection of utilities to help build software packages using opkbuild. opkhelper is inspired by [debhelper](http://kitenet.net/~joey/code/debhelper/), a similar set of programs written primarily by Joey Hess for Debian. - [markdownbook](http://git.proteanos.com/markdownbook/markdownbook.git/): The Text::MarkdownBook Perl distribution builds HTML and plain text books with multiple chapters and appendices from Markdown-formatted source files. It supports HTML templating, links between sections, and automatic generation of tables of contents. - [pro-archman](http://www.proteanos.com/dev/pro-archman/): This is pro-archman, the ProteanOS Archive Manager. pro-archman manages packages in an archive laid out as explained in the [specification](http://www.proteanos.com/dev/archive/layout/). - [prokit](http://git.proteanos.com/prokit/prokit.git/): This is prokit, the ProteanOS Development Kit. * Various packages I've written for [Libiquity](http://www.libiquity.com/), including: - [Math::Decimal::FastPP and decmath.js](decmath/): Fast and light decimal math libraries written in Perl and JavaScript. - [Epirts.js](epirts.js/): A free software replacement for Stripe.js implementing a subset of the Stripe.js API. * [ssic (Server Side Includes Compiler)](ssic/): ssic processes HTML documents with SSI directives formatted as SGML comments. It can be used to process documents without an HTTP server for local browsing or to generate static HTML documents to be efficiently served by an HTTP server. Documents could even be preprocessed, e.g. by a Markdown processor, before being parsed with ssic. * [overworld-rpg](overworld-rpg/): An untitled experimental overworld role-playing game engine. Written in C and designed to be visually pleasing, lightweight, and portable. * [cursespong](http://git.pehjota.net/cursespong/cursespong.git/): An unfinshed and untitled PONG-like game written in C and using the curses interface. * [cgol (Curses Game of Life)](cgol/): An implementation of Conway's Game of Life written in C and using the curses interface. * [screen-batt](screen-batt/): A simple battery status indicator for GNU Screen. Dead ---- * [libRCIO](https://gitorious.org/librcio): A library written in ISO C to read and write UNIX-style run control (configuration) files. * [Cowbell](https://gitorious.org/cowbell): "Curses, I'm up already!" A feature-packed alarm clock with a curses interface. * [changelog-gen](changelog-gen/): A UNIX shell script to generate a change log from "CHANGE:" tags found in Git commit messages. * [HIDRECT (Human Interface Device Reverse Engineering Capture Tool)](https://gitorious.org/hidrect): A simple event-based capture tool for human interface devices. * [VHC (Virtual Host Config)](https://gitorious.org/vhc): A collection of scripts to manage hosted users, domains, Web roots, and mailboxes. * [testbuild](http://git.pehjota.net/dev/testbuild.git/): A simple script to automate build testing for software managed with Git. Patches to Other Projects ========================= Accepted (Possibly With Modifications) -------------------------------------- * [GNU C Library](https://www.gnu.org/software/libc/): - [Don't use Bash-specific `${parameter/pattern/string}` expansion](https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0a834dd) - [ldd: make `try_trace` more robust and portable](https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=94bf958) (fixed bugs [#832](https://sourceware.org/bugzilla/show_bug.cgi?id=832) and [#3266](https://sourceware.org/bugzilla/show_bug.cgi?id=3266)) * [Time Zone Database](https://www.iana.org/time-zones): - [tzselect: port to /bin/sh](https://github.com/eggert/tz/commit/be06aa4) - [tzselect: work around an old BusyBox awk bug](https://github.com/eggert/tz/commit/868ed00) * [Debian](http://www.debian.org/): - [dpkg: Add support for build profiles](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661538#136) - [gettext: Split out libgettextpo-dev and libasprintf-dev for multiarch dependencies](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683751#65) - [libgcrypt11: Move some dependencies to Build-Depends-Indep](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682597) - [gnutls26: Move some dependencies to Build-Depends-Indep](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682596) - [minetest: Fix GCC 4.7 build failure](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667280#10) - [minetest: Split the server into its own package](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668004#5) * [GNU FM](http://foocorp.org/projects/fm/): - [61 commits](https://www.ohloh.net/p/librefm/contributors/1379053869333181) in the [Git repository](https://gitorious.org/foocorp/gnu-fm). Pending ------- * [GNU C Library](https://www.gnu.org/software/libc/): - [Don't use Bash-only $"msgid" quoting](https://sourceware.org/ml/libc-alpha/2012-11/msg00708.html) (fixes bug [#13853](https://sourceware.org/bugzilla/show_bug.cgi?id=13853)) To Be Submitted --------------- * [BusyBox](http://www.busybox.net/): - uname: Make `uname_info.os` configurable * [Debian](http://www.debian.org/): - [sbuild: Add support for build profiles](http://bootstrap.pehjota.net/sbuild/sbuild-build-profiles.debdiff) Debian Packages =============== Not Yet Uploaded ---------------- * [weasyprint](http://git.pehjota.net/debian/weasyprint.git/): WeasyPrint is a visual rendering engine for HTML and CSS that can export to PDF. * [cairocffi](http://git.pehjota.net/debian/cairocffi.git/): cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of Python bindings and object-oriented API for cairo. * [tinycss](http://git.pehjota.net/debian/tinycss.git/): tinycss is a complete yet simple CSS parser for Python. * [pyphen](http://git.pehjota.net/debian/pyphen.git/): Pyphen is a pure Python module to hyphenate text using existing Hunspell hyphenation dictionaries. * [ssic](http://git.pehjota.net/ssic/ssic.debian.git/): ssic processes HTML documents with SSI directives formatted as SGML comments. It can be used to process documents without an HTTP server for local browsing or to generate static HTML documents to be efficiently served by an HTTP server. Documents could even be preprocessed, e.g. by a Markdown processor, before being parsed with ssic. * [cgit](http://www.pehjota.net/~pj/cgit/): cgit is an attempt to create a fast Web interface for the Git SCM, using a built-in cache to decrease server I/O pressure. (This package in its current form is unsuitable for the Debian archive. See bug [#515793](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515793) for more information.)