improved lots of documentation and fixed a few build issues
diff --git a/doc/building-the-code.txt b/doc/building-the-code.txt
index 14a739c..fc3a7ae 100644
--- a/doc/building-the-code.txt
+++ b/doc/building-the-code.txt
@@ -6,41 +6,14 @@
[Install Packages]
First, you have to download and follow the directions in
<http://robotics.mvla.net/files/frc971/packages/frc971.list>.
-You also have to follow the directions at
- <http://backports-master.debian.org/Instructions/>.
-Then, run `apt-get install subversion git g++-multilib gcc-multilib ruby patch \
- make openjdk-6-jdk lib32event-dev python unzip bzip2 default-jdk`
- and `apt-get install -t squeeze-backports swig` (package lists correct for
- amd64 Squeeze; you might be able to get it to build on other
- versions/platforms/distributions (Ubuntu, Mint, ...) if you can find the
- right packages.
+Then, run `apt-get install python3`.
+The build script will tell you what other packages to install when you run it.
+ It's pretty smart about not checking for things it doesn't need, so you might
+ want to build 'deploy all' to see everything it wants.
You will have to accept the
- "WARNING: The following packages cannot be authenticated!" warning for the
- "libevent-2.0-5 lib32event-2.0-5 libevent-core-2.0-5 lib32event-core-2.0-5 \
- libevent-extra-2.0-5 libevent-pthreads-2.0-5 libevent-openssl-2.0-5 \
- libevent-dev lib32event-extra-2.0-5 lib32event-pthreads-2.0-5 \
- lib32event-openssl-2.0-5 lib32event-dev" packages.
-
-(On 64-bit Ubuntu Precise Pangolin:
-`apt-get install subversion git g++-multilib gcc-multilib ruby patch \
- make openjdk-6-jdk default-jdk libevent-dev:i386 libevent-2.0-5:i386`)
-
-Also run `apt-get install powerpc-wrs-vxworks tcl` if you want to be able to
- build the cRIO code too.
- NOTE: This is in *addition* to the above commands.
- You will have to accept the
- "WARNING: The following packages cannot be authenticated!" warning for the
- "powerpc-wrs-vxworks" package.
-If you want to actually download code to a robot (it will only work on amd64
- Squeeze), then
- (1) do `apt-get install ncftp rsync socat`.
- socat is used for the netconsole.sh tool that is used to talk to the cRIO.
- (2) Set the IP address of the downloading machine to be on the same subnet.
- ifconfig eth0 10.9.71.22
- This will need to be redone when the computer Ethernet connection is
- reset. For example, it is reset by disconnecting and reconnecting
- the Ethernet cable or power cycling the robot. Check it with
- ifconfig eth0
+ "WARNING: The following packages cannot be authenticated!" warning for
+ various packages downloaded from our package repository.
+ This works for amd64 Wheezy, no guarantees or support for anything else.
[Running Locally]
If you want to be able to run the realtime code on your development machine
@@ -48,13 +21,21 @@
variable), follow the directions in /src/aos/config/aos.conf.
[Compiling and Downloading]
-Run `./build.sh` from src/frc971/atom_code/ and src/frc971/crio/.
-Use `./build.sh deploy` to download to a robot.
+Run src/frc971/{atom_code,crio}/build.sh.
+ Give it clean, tests, or deploy as a first argument to do something other
+ than just build.
+ Each action (build (the default), clean, tests, or deploy) has a different
+ default set of versions of the code it builds. You can change those by
+ passing another argument. Some popular ones are 'all' (build everything),
+ 'clang-amd64-none' (the most basic one for local testing), and
+ 'gcc-arm-nodebug' (the one that gets downloaded). See its --help for
+ more details.
[Communicating with the cRIO]
-Use netconsole.sh to communicate directly with the cRIO.
-frc971/2013/trunk/src/aos/crio/bin/netconsole.sh
+Use netconsole (in the amd64 outputs directories) to communicate directly with
+ the cRIO.
Use "reboot" from within netconsole.sh will reboot the cRIO. ^C will
-stop it the netconsole.sh command. "version" will tell you the the
-VxWorks and WIND versions and "help" will give you a list of VxWorks
-commands that you can use.
+ stop the netconsole program. "version" will tell you the the
+ VxWorks and WIND versions and "help" will give you a list of VxWorks
+ commands that you can use.
+Make sure your computer is on the right subnet first.
diff --git a/doc/clang-3.5.ctl b/doc/clang-3.5.ctl
index dfbae3e..b20c52a 100644
--- a/doc/clang-3.5.ctl
+++ b/doc/clang-3.5.ctl
@@ -1,28 +1,13 @@
-# This is a control file for creating the clang-3.5 package.
-### Commented entries have reasonable defaults.
-### Uncomment to edit them.
Source: llvm-toolchain-snapshot
Section: misc
Priority: optional
Homepage: http://www.llvm.org/
Standards-Version: 3.9.2
-
Package: clang-3.5
Version: 1:3.5~svn201561
Maintainer: FRC Team 971 <spartanrobotics.org>
-# Pre-Depends: <comma-separated list of packages>
Depends: libbsd0, libc6, libedit2, libncurses5, libpython2.7, libtinfo5, zlib1g
-# Recommends: <comma-separated list of packages>
-# Suggests: <comma-separated list of packages>
-# Provides: <comma-separated list of packages>
-# Replaces: <comma-separated list of packages>
Architecture: amd64
-# Copyright: <copyright file; defaults to GPL2>
-# Changelog: <changelog file; defaults to a generic changelog>
-# Readme: <README.Debian file; defaults to a generic one>
-# Extra-Files: <comma-separated list of additional files for the doc directory>
-# Files: /opt/clang-3.5/ /opt/
-# <more pairs, if there's more than one file to include. Notice the starting space>
Description: Clang 3.5 with included GCC 4.8 so it actually works.
This is just 1 massive package with a newer clang that doesn't conflict with
other stuff like the official clang-3.5 package does.
diff --git a/doc/git-setup.txt b/doc/git-setup.txt
index d0fd0af..6fc52b5 100644
--- a/doc/git-setup.txt
+++ b/doc/git-setup.txt
@@ -1,16 +1,13 @@
Some of us are using git for managing quickly changing code. This file has
notes for setting that up.
-ssh to robotics.mvla.net and add the git executables to your .bashrc:
- PATH=$PATH:/www/https/files/frc971/2013/brian/
-
[Cloning]
`git clone \
- ssh://USERNAME@robotics.mvla.net/www/https/git/frc971/SOMEBODY/2013.git`
+ ssh://USERNAME@robotics.mvla.net/www/https/git/frc971/SOMEBODY/2014.git`
where USERNAME is your login on the server and SOMEBODY is whoever's git
repo you want to clone
If you don't have a login on the server, then cloning
- https://robotics.mvla.net/git/frc971/somebody/2013.git instead should work
+ https://robotics.mvla.net/git/frc971/somebody/2014.git instead should work
(with your SVN username and password). However, that form of URL is read-
only. In order for this to work, you have to either set the environment
variable GIT_SSL_NO_VERIFY to 1 or set the git option http.sslverify to false.
@@ -22,46 +19,36 @@
[Adding Other People's Repositories]
`git remote add SOMEBODY \
- ssh://USERNAME@robotics.mvla.net/www/https/git/frc971/SOMEBODY/2013.git`
+ ssh://USERNAME@robotics.mvla.net/www/https/git/frc971/SOMEBODY/2014.git`
where USERNAME is your login on the server and SOMEBODY is another person's
git repository
The https:// URL discussed above in [Cloning] will work too.
[Working with Other People's Repositories]
`git fetch SOMEBODY` will pull their changes, and then you can rebase on top of
- them etc.
+ them, merge them in, etc.
`git push --mirror` will push all of your local branches so that everybody else
can see them. (This is the default if the configuration option remote.<remote>.mirror is set.)
However, you can not do that with an https:// URL.
[Synchronizing with SVN]
-In order to synchronize the git commits with svn, somebody has to set up git-svn in their local git repo and then push/pull commits.
-
-To do that, `git svn init https://robotics.mvla.net/svn/frc971/2013/trunk/src`
-
-Then, unless you want git-svn to pull down everything from SVN again, you have to edit .git/refs/remotes/git-svn (or whatever you name the remote) in your local repository and put in the commit ID of the latest commit in the repository that's from SVN.
-
-After doing that (and a `git svn fetch`), git-svn works like usual (see git-svn(1) for details).
-
-To pull changes from svn, do `git-svn fetch`. To push changes to svn, do `git svn dcommit`, which will take all of your git commits between the latest commit from svn and your HEAD and make them into svn commits.
-
-Multiple people dealing with svn works OK because the git commit SHAs end up the same so they all just become the same objects.
+Somebody should occasionally copy all of the files from git (bbb_cape,
+ frc971, and aos) into svn.
[Server Setup]
-To get started working with git on the server, first you have to set up your
- .bashrc so that the git tools work. To do that, add the following line to your
- .bashrc *ABOVE* the '[ -z "$PS1" ] && return' line.
- PATH=$PATH:/www/https/files/frc971/2013/brian/
-You also need a place to store your files. You will need an adminstrator to
+You need a place to store your files. You will need an adminstrator to
create a folder for you in /www/https/git/frc971 (on the server) with the
correct permissions and group.
[Repository Setup]
To create a git repository on the server,
- "/www/https/git/frc971/brian/bare-git-repo" to wherever you want your
- repository (using `git init` won't work correctly). The standard location for
- mirrors of the "https://robotics.mvla.net/svn/frc971/YEAR/trunk/src" folder is
- "/www/https/git/frc971/USERNAME/YEAR.git".
+ `git init --bare 2014.git` in your folder (ie
+ "/www/https/git/frc971/USERNAME/"), `cd 2014.git`,
+ `git config --local gc.pruneExpire never`, `rm -r objects/`, and then
+ `ln -s /www/https/git/frc971/objects/2014 objects`. That will set you up
+ with a repository in the standard location and make it so all of the objects
+ in it won't be duplicated with the identical ones in everybody else's
+ repositories.
In order for https:// access to work, you have to make sure to rename
.git/hooks/post-update.sample to .git/hooks/post-update (and then run
`git update-server-info` if you're not going to push immediately).