]> oss.titaniummirror.com Git - oss-web.git/blobdiff - in/tinyospkgs.md
Updates reflecting new TinyOS 2.1.0-4.2 release.
[oss-web.git] / in / tinyospkgs.md
index f81d41557c0faa90c9efb3319863e82da8d7ff5c..1755db9bd6f7489ef33d33e71142064edf457d25 100644 (file)
@@ -3,78 +3,54 @@ linktitle: tinyospkgs
 parent: aptrepo
 ctime: 2009-12-10
 
-Repositories: [tinyos](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary),
+Repositories: [tinyos](/gitweb/?p=tinyos-2.x.git;a=summary),
+[deputy-tinyos](/gitweb/?p=deputy-tinyos.git;a=summary),
+[nesc](/gitweb/?p=nesc.git;a=summary),
 [[aptrepo]].
 
-## Package versioning
+# Package versioning
 
 The TinyOS packages are built from the TMI
-[TinyOS repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary).  The
+[TinyOS repository](/gitweb/?p=tinyos-2.x.git;a=summary).  The
 package version number is of the form `tosver-tmiver`, where `tosver` is the
 official TinyOS release version on which the code is based, and `tmiver` is the
-version of the modifications applied by TMI.
-
-These version numbers are present in the
-[repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary) in the form
-of release and patchset tags.  For example, the code from which package version
-`2.1.0-3` is built is tagged `release/2.1.0-3`.  This code is based on the
-upstream version `2.1.0`, which is tagged in the repository as `tinyos/2.1.0`.
-A clean patchset is tagged `patchset/2.1.0-3`, where the commits between these
-two tags represent a clean set of patches that apply the TMI modifications to
-the upstream version.
-
-## Git/CVS issues
-
-Because CVS and git tags are fundamentally incompatible, we cannot guarantee
-that a git repo using `git-cvs` and tracking the upstream CVS repository will
-result in the exact same checkout tree state at each tag.  We resolve this
-issue as follows:
-
-* TMI tracks the upstream CVS in a git mirror repository updated periodically
-  via a script using `git-cvsimport`.
-  
-* When TMI wants to rebase its local modifications on a newer version of
-  upstream TinyOS, it pulls changes in from this mirror git repo into the
-  [TMI TinyOS repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary)
-  onto the `upstream` branch.  Release tags, such as `release_tinyos_2_1_0_0`
-  from CVS are also pulled.
-
-* In git, a new release branch is created at the release tag.  In this example,
-  release tag `release_tinyos_2_1_0_0` is the branch point for the new branch
-  `release/2.1.0`.
-
-* The tag `tinyos/2.1.0` is the tag of git tree along the `release/2.1.0`
-  branch where the checkout of git at `tinyos/2.1.0` exactly matches the
-  checkout of upstream CVS at `release_tinyos_2_1_0_0`.
-
- * If the git and CVS tags checkout trees that match at tag
-  `release_tinyos_2_1_0_0`, then `tinyos/2.1.0` tags that same commit.
-
- * If the git and CVS checkouts diverge, then the first commit along the new
-   `release/2.1.0` branch contains the changes necessary to sync git with CVS
-   at the release tag.  This is accomplished by using `git_load_dirs`.  This
-   new commit to the release branch is tagged `tinyos/2.1.0`.
-
-## Multiple source trees
-
-TMI TinyOS packages allow for the installation of multiple TinyOS source trees.
-This allows us to maintain older programs built against older versions of
-TinyOS while simultaneously working on new applications.  It also allows us to
-compile code against the official TinyOS releases in addition to the TMI
-enhanced releases.
-
-This is accomplished by altering how TinyOS source is installed.  The standard
-convention is for the TinyOS source tree to be installed on a development
-workstation at `/opt/tinyos-2.x`.  The TMI packages install the source trees
-at `/opt/tinyos/VER`.  For example, the official TinyOS 2.0.2.2 source tree
-would install at `/opt/tinyos/2.0.2.2`, and the TMI enhanced TinyOS 2.1.0-3
-tree installs at `/opt/tinyos/2.1.0-3`.  A sourceable script,
-`/opt/tinyos/tinyos.sh`, is used to set which source tree is used by the
-TinyOS development tools and build system.  The script is also sourced in
-the user's profile to provide persistence of settings across logins and reboots.
-
-Each TinyOS source tree has its own package.  Here are the currently available
-trees as of this writing:
+version of the modifications applied by TMI.  Released APT package versions are
+associated with tags in the source code repository.  Consider the latest
+package version, 2.1.0-4.2, for which these tags exist in the repository:
+
+* `debian/2.1.0-4.2-1tmi` is the tag of the 'debianized' code from which the APT
+  packages version 2.1.0-4.2-1tmi were built.
+
+* `release/2.1.0-4.2` is the tag of the TinyOS code of which
+  `debian/2.1.0-4.2-1tmi` is a superset, the latter containing the debian
+  packaging files.
+
+* `tinyos/2.1.0` is the official upstream release on which `release/2.1.0-4.2`
+  is based, the difference being the TMI enhancements.
+
+* `patchset/2.1.0-4.2` is the head of a string of commits from the
+  `tinyos/2.1.0` tag that represent a clean patch series that applies the
+  TMI enhancements to the official upstream release.
+
+# Multiple source trees
+
+Often it is impractical to maintain older applications by porting them forward
+to the latest TinyOS version.  The TMI approach allows multiple TinyOS trees
+to be installed simultaneously, thereby allowing different applications to be
+compiled against different TinyOS versions.
+
+The official TinyOS installs the source tree at `/opt/tinyos-2.x`.  The TMI
+version installs source trees at `/opt/tinyos/VER`.  For example, the latest
+TMI tree is installed at `/opt/tinyos/2.1.0-4.2`.  TMI also maintains in its
+repository the last few official source trees.  At least one must be installed,
+and the developer may install others as needed.  When installing or upgrading
+TMI TinyOS packages via APT, the latest TMI tree package is automatically
+installed.  Source the script `/opt/tinyos/tinyos.sh` to set the three you wish
+to use.  This script also updates your shell rc file (if running bash, ksh or
+csh) so that your tree selection is persistent across logins.
+
+This is the currently available trees as of this writing.  You can use the
+command shown below to at any time view the available source trees.
 
     $ sudo apt-cache search tinyos-source
     tinyos-source - TinyOS source meta package
@@ -82,21 +58,23 @@ trees as of this writing:
     tinyos-source-2.0.2.2 - TinyOS source code tree
     tinyos-source-2.1.0 - TinyOS source code tree
     tinyos-source-2.1.0-3 - TinyOS source code tree
+    tinyos-source-2.1.0-4 - TinyOS source code tree
+    tinyos-source-2.1.0-4.1 - TinyOS source code tree
+    tinyos-source-2.1.0-4.2 - TinyOS source code tree
 
-At least one tree must be installed, and the latest tree is installed each time
-the tinyos packages are installed or upgraded.  However, the developer may
-keep multiple trees installed if necessary.  The APT package upgrade
-mechanisms work properly.
-
-## Installing TinyOS
+# Installing TinyOS
 
-To install TinyOS, perform the steps above to configure the TMI repository on
-the workstation, then type:
+To install TinyOS, perform the steps shown for the [[aptrepo]], then type:
 
     sudo apt-get install tinyos
 
 By default, the latest TinyOS source tree, with TMI enhancements, and the TMI
 [[msp430]] toolchain are installed.  At this point, additional tinyos source
-trees may be installed as required.  For example:
+trees may be installed as required.  For example, to install the official
+upstream source version 2.1.0 without TMI enhancements:
 
     sudo apt-get install tinyos-source-2.1.0
+
+You may also install the AVR compiler for TinyOS by typing:
+
+    sudo apt-get install tinyos-avr