LM BLD

The LM BLD system is a template based tool system to facilitate building and sharing of programs.

There are several build tools, package management systems, archive tools already out there. So why reinvent the wheel? None of these fit well with the design priorities I wanted in a system. So as the song says, I did it may way. I've been working on this on and off in my free time for more than a few years now. I intend to keep at it until I have something well documented, tested on several platforms and ready to share.

My Design Priorities

LM BLD System Status

I currently have templated build scripts and install/uninstall scripts working. The system is currently being used by me to automate building several Open Source applications. It also helps keep track of all the patches I've been collecting. I still have many features I want to add including some dependency handling and archive additions. Once the system is not in so much flux, I intend to make it available under a BSD style license. If you're interested in the project, you can contact me through the CPPDesign mailing list.

LM BLD System User Interface

I wanted a portable, uniform user interface to tie applications and documentation together for end user that prefer a GUI to command lines. I looked for a lightweight, cross-platform Open Source browser as a starting point and modified the code. It can now be used as a replacement for programs like dialog, xdialog, gtkdialog, etc. You can use standard HTML and CSS to create a GUI interface for scripts and lightweight or command line applications. It can provide a graphical front end for the system and should handle issues such as internationalization. It will also work in console mode if you prefer that to X Windows or the native Windows look. I currently have my user interface modifications made to two cross-platform browsers: lynx and dplus. I also have a sample configuration tool to demonstrate the technique. The configuration tool provides menus to set basic environment variables, edit configuration files and run applications that give information about a system (simple control panel). The technique can be modified or expanded to display other options. It uses either modified browser, bash scripts, html and css. I'm using bash because it is available on all the platforms I'm working with, but other scripting languages would work as well.

I'm making available a copy of the patches I created to turn the lynx and dplus browsers into user interfaces. I have patches and build scripts to create:

I created a tool to simplify parsing of URLs output by these user interfaces. I have C++ code for uiresult and a Windows executable. The program is cross-platform and should build on a variety of systems.

I'm also making my bash configuration tool scripts available to demonstrate using HTML and CSS as a user interface.

If you have any problems with the build scripts retrieving the original source code, I have backup copies available for:

LM BLD UI sample Theme Changer

I'm hoping to use these tools to create another example application, a jwm theme changer utility to change some of the options for this window manager including switching looks/themes. If you have a theme you've created for jwm that you'd like to be a part of the theme collection for this utility, please let me know. I'd some additional themes besides just my own and would be happy to list your name as the author of the theme. The settings/theme must be licensed under some sort of Open Source license for distribution with the utility program.

LM BLD Sysbase Alpha

While I want to adapt to the tools available on a system, I still want to make sure there are a minimal set of tools to build with under any circumstances. Typically Open Source operating systems use gnu tools. More lightweight or embedded systems may use tools like busybox or toybox. After looking at the specifications on some of the system tools available, I've decided to put together my own mainly BSD and MIT style licensed collection. Currently, I'm investigating what's available for systems like PicoBSD, FreeBSD and Minix to see what might be adapted. I'll be adding utf8 support in certain area using my own lmutf8 library. The goal is a minimal set of tools for command line use and building applications that is lightweight, cross-platform and coded in a readable and understandable manner.

How to Help

I still have a lot of design decisions I have to work out, such as how to handle directory and program locations in a consistent manner. Some of them are detailed on My Ideal Open Source Distribution page. Am hoping to make the programs as portable as possible, so they're not stuck with looking for resources only at hard-coded locations. I'm researching various ways to create cross-platform applications on Linux systems and at the moment, am considering using LSB base libraries to build the applications. Am also researching distribution issues and want to make sure sneaker net and creating CDs or flash drives with the applications are viable options along with Internet access for downloads. I'm not sure how close to adhere to some of the freedesktop standards and how much to diverge since this system is designed to work on multiple platforms including some where those standards aren't used. I could also use feedback on some of the user interfaces. I'm always looking for other lightweight programs to add to the list of applications I'm creating build scripts for. I'm also looking for lightweight or more efficient versions of common utilities and build tools. If you'd like to help, I'd be interested in hearing other opinions and pros and cons on some of these design issues or other suggestions.

 

To the main page.

 

Validate XHTML



The information on these pages is copyrighted by the author with all rights reserved. Reproduction of anything without the author's permission is in violation of copyright laws.
All original material is copyrighted:
(c) Copyright 2012 by Laura Michaels
All Rights Reserved