X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=in%2Ftinyospkgs.md;h=f6a5240be2b689ddd56fd72ccb8632af53f3b7a0;hb=d848b801a6fa1fad501fb8b58a7ed8dd3dc5e359;hp=f81d41557c0faa90c9efb3319863e82da8d7ff5c;hpb=9c78235aa6cc9fa205a3aa75a2c8f6590e449333;p=oss-web.git diff --git a/in/tinyospkgs.md b/in/tinyospkgs.md index f81d415..f6a5240 100644 --- a/in/tinyospkgs.md +++ b/in/tinyospkgs.md @@ -6,75 +6,49 @@ ctime: 2009-12-10 Repositories: [tinyos](http://repo/gitweb/?p=tmi/tinyos-2.x.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 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-3, for which these tags exist in the repository: + +* `debian/2.1.0-3-2tmi` is the tag of the 'debianized' code from which the APT + packages version 2.1.0-3-2tmi were built. + +* `release/2.1.0-3` is the tag of the TinyOS code of which + `debian/2.1.0-3-2tmi` 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-3` is + based, the difference being the TMI enhancements. + +* `patchset/2.1.0-3` 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 an older application by porting it 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-3. 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. +Source this script from your login profile with no argument to ensure 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 @@ -83,15 +57,9 @@ trees as of this writing: tinyos-source-2.1.0 - TinyOS source code tree tinyos-source-2.1.0-3 - 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