You have a program you would like to add to the packages area?
Here are the steps necessary.
Software Packaging Overview
You must have SVN access to the packages source tree. If you have questions about SVN, the instructions at SourceForge (http://sourceforge.net/apps/trac/sourceforge/wiki/Subversion) are quite helpful. NSLU2 SVN is available on the web at http://svn.nslu2-linux.org/svnroot/optware
Note that packages are normally built on a HOST machine (like a desktop or laptop) running Linux. Some people compile natively on the NSLU2.
You should wait until you have compiled and tested your application before requesting write access. Once you have downloaded the development tools and package sources, and successfully built Unslung and all the packages, you are ready to add your own package.
To get SVN write permission so you can add your package to the Optware distribution, send your request to the developers mailing list (Join nslu2-developers on Yahoo Groups then send an email to
If you are cross-compiling on a normal Linux desktop or laptop (this is the preferred option for packages that can be cross-compiled) then the build system will compile the crosstool package for you, so you don't need to build it yourself any more. If you are native compiling, then see NativelyCompileUnslungPackages for details of the native compilation toolchain. Native package building should be possible from beginning to end using the following instructions.
Check out package sources from svn.nslu2-linux.org
Checking out package sources before you have SVN write access
First, you need to copy the SVN tree.
This will create an optware directory with the whole svn tree. Inside
Quick build notes: If you have not yet got a linux build system you can use windows, see below. If you type
If you are using a recent version of Ubuntu, the default shell will not allow the toolchain to compile (errors like "csu/version-info.h:1: error: missing terminating " character"), type
New (windows) build system: If you are starting from scratch with a windows box then the easiest route is install VirtualBox? (http://www.virtualbox.org/) and then install a version of linux into that, pick your favourite but I used Ubuntu 7.10. Create a machine with at least 6Gb of hard disc. You will need to install some packages to build with:
Note, if you are wanting to build for nslu2 (unslung), Ubuntu 9.10 cannot be used, as GCC 3.3 is needed (3.4 may suffice). Debian 5 still has this in its package feeds.
Developer (with SVN write access) way of checking out package sources
$ svn co https://svn.nslu2-linux.org/svnroot/optware/trunk optware
Building the ipkg package
$ cd optware; make <platform>-target $ cd <platform>; make directories toolchain ipkg-utils
Where <platform> can be one of nslu2, cs05q3armel, etc. See optware/platforms/ for available targets.
Guidelines for package developments
There is work in progress to show which practices have shown to be successful and therefor encouraged, and which aren't. Go to PackagingBestPractices to see these and add your own commments.
An especially important rule is that all packages must be able to be rebuilt from source from the SVN repository. We do not accept binary-only packages in the official Optware package repository (however, we are happy to point to other third-party repositories).
You might also find it helpful to know how our build machines are set up. This information can be found at:
Making a package using the template
Now comes the bulk of our work -- editing
For the remainder of the editing process follow the directions in
Now it's time for the moment of truth. From your
You may get errors; try to determine whether the error is occuring due to the makefile (i.e.
If you get an error during compilation that says keramik is not found, unset STYLE and try again. Keramik sets the STYLE variable which is also used by some packages.
If you want to know the value of any optware make variable, you can "make query-VAR_NAME" (very useful).
If you get an error building the ipk that tar doesn't recognise the --format option you need to upgrade to a newer version of GNU tar (at least 1.14). If you are running Suse 9.1 it is possible to uninstall the standard rpm (ignoring any dependency violations) and install the rpm from Suse 9.2. Similar tricks may be possible on other distros but make sure you have got the original package available to reinstall if needed.
Error Example 1: "copy and paste" was performed from above instructions to get following error message. www.mypackage.org is a fake one, it should be replaced with a real address and so as "mypackage" pacakge name.
Once you have your ipk, try to install it (
Check in your package sources to svn.nslu2-linux.org
Mark your package ready for testing
When your package is ready to be looked at by a core developer, add its name to one of the READY_FOR_TESTING lines in the root Makefile. In due course, someone will take a look at what you've done. If it works, and follows the Unslung.PackagingBestPractices, it will be uploaded to the feed. If not, it will be moved to a NEED_TO_BE_FIXED line, and a comment entered in the makefile describing the problem.
svn lock Makefile <edit the Makefile to add your lines> svn commit -m "package: comments as per guidelines" Makefile
If you are requesting native compilation for your package, please add a comment to the Makefile explaining concisely why the package cannot be cross-compiled. The process for this is:
You would be well advised to be on the #nslu2-linux irc channel when you do SVN commits, especially when you make your package READY_FOR_TESTING. That way you will get realtime comments from other developers.
Good luck with NSLU2 development!
If you see something unclear in this description, please be sure to update it.
Note regarding Libtool and Libtoolize
For building most packages, the GNU Libtool and Libtoolize are essential programs that need to be installed on the build system. These two programs interact with the ltmain.sh script included with most program tarballs. There are currently two version streams for these programs, version stream 1.5.x included with most older versions of Debian and Ubuntu etc, this is the version used by the NSLU2 Optware build machines. More recent versions of Ubuntu and other Linux distros have now upgraded Libtool and Libtoolize to the version stream 2.2.x. Unfortunately many Optware packages will not build with this later version. The reason - version stream 2.2.x is not fully backwardly compatible with ltmain.sh scripts from earlier versions. This backward compatibility problem is well documented on the internet, there are may recommended fixes and patches etc, most are not fully explored, some may fix one package but break another. To check the version of Libtool installed type at a console prompt : -
For Optware development it is recommended that the version of Libtool is downgraded to version 1.5.26 or lower, example - with a Ubuntu Intrepid build system install the Ubuntu Hardy version of the libtools.
Another possibility is to upgrade the version of the ltmain.sh script included with the program tarball to a version 2.2.x. This seems to work with some program tarballs but not all.
Note regarding Build servers
As of 2010-Oct-26, the official builder is still on Ubuntu 8.04.3 LTS.
view · edit · print · history · Last edited by JC.
Based on work by Miguel Macias, Reedy, rwhitby, BrianZhou, RobHam, pinkpanteens, phonesex, sexbot, teengalleries, swiss replica watches, replica tiffany, verizon wireless, free motorola, ring tones, bob, liza, phone ring tones, lola, free ring tones, mwester, james, pembo, attwirelessringtoneprepaidcellphone, free_lg, ringtones, free real music samsung, kayak airline, free video game ringtone, cheapest airfare, ghost ringtone, razorback tickets, kFjCvyQLh, low fares, kate, atotic, rolex watches, airfares bangkok, sikahr, RE, polyphonic ring tones, ka6sox, ringtone for cellular, rolex, appraisals, cheap air flights, cheap kansas city, airfares, malaysia airline tickets, ccaplink811, arni, joseph, mona, Woody, VbcAUQOJuEqawqchZ, emmis, v12mike, Ed Rubinsky, vidar, fcarolo, repvik, placid, oleo, Peter Enzerink, jeremyatautostaticdotcom, Jeremy, Chris Burghart, Markus Huehnerbein Gregor Zurowski, oleon, don lubinski, emm_is, Gabor Kiss, rcsuk, Adam Baker, tman, jp30, kaste, cardfumbler, bobtm, paulhar, tjyang, jeremyeglen, jsilence, ChrisE, and Gerald L Clark.
Originally by Gerald L Clark.
Page last modified on October 26, 2010, at 10:28 PM