Merge branch 'master' of ../sipb-www/doc/ trac-import
authorGreg Price <price@mit.edu>
Sun, 1 Feb 2009 07:45:33 +0000 (02:45 -0500)
committerGreg Price <price@mit.edu>
Sun, 1 Feb 2009 07:45:33 +0000 (02:45 -0500)
17 files changed:
doc/AFSAndYou [new file with mode: 0644]
doc/BarnOwl [new file with mode: 0644]
doc/BugsTest [new file with mode: 0644]
doc/CupsOnMac [new file with mode: 0644]
doc/Debianization [new file with mode: 0644]
doc/HackathonIdeas [new file with mode: 0644]
doc/KerberizedServer [new file with mode: 0644]
doc/LennyBugs [new file with mode: 0644]
doc/LennyBugsAll [new file with mode: 0644]
doc/ProjectIdeas [new file with mode: 0644]
doc/QuickPrint [new file with mode: 0644]
doc/RootInstance [new file with mode: 0644]
doc/SummerReading [new file with mode: 0644]
doc/TraditionalZephyr [new file with mode: 0644]
doc/UsingScreen [new file with mode: 0644]
doc/UsingZephyr [new file with mode: 0644]
doc/WikiStart [new file with mode: 0644]

diff --git a/doc/AFSAndYou b/doc/AFSAndYou
new file mode 100644 (file)
index 0000000..ca4d5f5
--- /dev/null
@@ -0,0 +1,238 @@
+[[PageOutline]]
+
+Mostly written by Donald Guy, [[BR]]
+drawn from a variety of sources. [[BR]]
+Credit goes to them, blame goes to him.
+
+= What is AFS? =
+The '''Andrew File System''' or '''AFS''' is a distributed network file system invented at [http://www.cmu.edu/index.shtml Carnegie Mellon University] as part of Project Andrew (approximately their equivalent of MIT's Project Athena). More importantly, it is the file system used to store most files on Athena today. This includes your personal home directory, the data and websites of many living groups and student groups on campus, and probably some of the software you run (if you ever use Athena clusters). (Though all user directories were migrated from NFS in the summer of 1992, some files probably still remain on NFS and, of course, various file systems are used on personal computers and servers.)
+
+'''''In Short: AFS is probably where some of the files you care about live'''''
+
+For the most part, using AFS, particularly at MIT, is well-hidden and can be used like any other UNIX file system. For some things, you will need to know a bit more. Let's start by defining some terms.
+
+= Some MIT/AFS terminology = 
+
+ '''locker'''::
+    For practical purposes, a folder. Probably the what you'll care about most of the time. Technically any directory mountable under /mit, regardless of how its stored. Today, most lockers lockers are stored in AFS.
+
+ '''tokens'''::
+    Essentially proof to the AFS servers that you are who you say you are, thus allowing you to access files you are supposed to. Analogous to Kerberos tickets. 
+
+ '''cell'''::
+    AFS concept of an "administrative domain of authority." Each cell has its own set of users, groups, and administrators. Analogous to a Kerberos realm. Each top-level directory in /afs corresponds to a cell. The cells you are most likely to care about are {{athena.mit.edu}} and {{sipb.mit.edu}}.
+
+= The Basics =
+
+== The Layout of a Typical MIT Locker ==
+Every Athena user has a locker (their home directory), which mounts at {{{/mit/<username>}}}. From a technical standpoint, it is stored in the volume {{{user.<username>}}} which is located at {{{/afs/athena.mit.edu/user/<first letter>/<second letter>/<user name>}}}. For example, the user {{{joeuser}}} has a home directory that mounts at {{{/mit/joeuser}}}, is volume {{{user.joeuser}}}, and is accessible at {{{/afs/user/j/o/joeuser}}}. Lockers for projects, software, classes, living groups, and student groups are all mounted at {{{/mit/<lockername>}}} and stored at various places in AFS.
+
+Within each locker, there are (by default) 4 special subdirectories you want to care about.
+
+ '''{{{Public}}}''':: 
+  By default, this directory can be read by everyone (and I do mean EVERYONE!), so put files here you want to share with the entire world.
+ '''{{{Private}}}'''::
+  By default, this directory can only be read and can only be ''listed'' by you (from AFS, not from web) whereas the files in other directories can (by default) only be read by you, but can be listed by anyone. This means that other people can't see the contents of your files, but they can see what files you have outside of {{{Private}}} 
+ '''{{{OldFiles}}}'''::
+  This folder is a link to a read-only copy of a backup of your files (created nightly at 3 a.m.). This copy cannot be edited and does not count towards the locker's quota. (From a technical standpoint, this is a separate volume, user.<username>.backup and is stored only as changes against the current copy.)
+ '''{{{www}}}'''::
+  Where you should put a website, if you want one. There is very little special about this directory from an AFS standpoint, but it is world-readable (like Public) and is linked directly to {{{http://www.mit.edu/~<lockername>}}} as well as {{{http://web.mit.edu/<lockername>}}}.
+
+
+== Accessing Lockers ==
+
+=== From Athena ===
+
+On Athena, you can access a locker either as its full AFS path, if you know it (e.g. {{{/afs/athena.mit.edu/course/6/6.01}}}), or under {{{/mit}}} if it is "attached." Yet a third way is to use tilde expansion and simply {{{ cd ~~<locker> }}} (e.g. {{{cd ~~6.01}}}) which will take you to the full path. Often, however, you want to attach lockers because it is easier to refer to them outside of the shell (in a script, for example) and software is set up to run with a path under {{{/mit}}}. There are a few ways to attach a locker: 
+
+ * If you are running on a [http://debathena.mit.edu Debathena] machine, such as [http://linerva.mit.edu linerva.mit.edu], then simply {{{cd /mit/<locker>}}} and it will be auto-attached.
+ * If you are on another Athena machine and don't want to run software out of the locker, than simply type {{{attach <locker>}}} and then `cd` to it.
+ * If, however, you want to use software in the locker, you will be better served by running {{{add <locker>}}} (e.g. {{{add ruby-lang}}}). This will attach the locker at {{{/mit/<locker>}}} and will add the `bin` directory (for your architecture) of that locker to your PATH. What this means is that you should be able to run any program located in that locker by simply typing the name of the program at the command line.
+   * If you frequently use the same locker, it may be helpful for you to add the {{{add <locker>}}} command to your {{{.environment}}} file. To do this simply from the Athena command line, type {{{echo "add lockername" > ~/.environment}}} or {{{echo "add lockername >> ~/.environment}}}.
+
+=== From the Web ===
+
+Generally any locker that you would access on Athena as {{{/mit/<locker>}}} is accessible on the web as {{{http://web.mit.edu/<locker>}}}. For example, the barnowl locker is at [http://web.mit.edu/barnowl]. As you can see, if there is no index.html (see below), the files in the directory are listed. By default, however, none of the contents are readable except in the `www` and `Public` folders.
+
+Also, you may access something in one of the MIT AFS cells by taking its full AFS path after web.mit.edu ([http://web.mit.edu/afs/athena.mit.edu/activity/c/chess-club]). (That link also shows that if you have a text file named README readable, as a link to Public/README for example, its contents will be displayed below the directory listing).
+
+
+== Checking Quota ==
+
+You are only allocated a certain amount of disk space by MIT. To check the quota of the locker you are presently in run {{{fs listquota}}}. You will see output similar to the following:
+
+{{{
+user@host:/mit/chess-club$ fs listquota
+Volume Name                   Quota      Used %Used   Partition
+activity.chess-club         1500000     13163    1%         90% 
+}}}
+
+
+If this information is good enough for you, then you are done. If not, read on.
+
+= Common Tasks =
+
+== Controlling Who can Access Files ==
+You may be familiar with Unix permissions. Sad to say, but that knowledge is basically useless here. Whereas Unix permissions, are per-file, AFS permissions are controlled by '''Access Control List'''s ('''ACL'''s) on a per-directory basis. 
+
+To view the ACL for a given directory (where you have permission to do so), run {{{fs listacl}}} or {{{fs la}}}, for short. For a typical user locker, the ACL in the top level will look like this 
+{{{
+user@host:~$ fs la
+Access list for . is
+Normal rights:
+  system:expunge ld
+  system:anyuser l
+  user rlidwka
+}}}
+
+This is a list of users or [#CreatinganAFSGroup AFS groups] and their permissions in this directory (and subdirectories that don't have their own ACL modifications). In AFS there are seven permissions as follows
+
+ ||'''r'''||  read   ||   user or members of group can read files in the directory    (i.e. see the contents of files)                  ||
+ ||'''l'''||  list   ||   user or members of group can list files in the directory    (i.e. see the names of files)                     ||
+ ||'''i'''||  insert ||   user or members of group can create files (or subdirectories) in the directory                                ||
+ ||'''d'''||  delete ||   user or members of group can delete files in the directory                                                    ||
+ ||'''w'''||  write  ||   user or members of group can modify files in the directory  (i.e. change the contents of files)               ||
+ ||'''k'''||  lock   ||   user or members of group can lock files in the directory   (you will likely never use this)                   ||
+ ||'''a'''||  admin  ||   user or members of group can see and change permissions. It does '''not''' affect pre-existing subdirectories.||
+
+To add a user or group to the ACL for a given directory simply run {{{fs setacl}}} or {{{fs sa}}} as follows:
+{{{
+fs sa <directory> <user or group> <permissions>
+}}}
+
+ {{{<directory>}}}::
+  can be an absolute or relative path, usually you will want {{{.}}}
+ {{{<user or group>}}}::
+  can be any user or group. Some you probably want to know: system:anyuser means EVERYONE (the entire AFS-using world plus the entire world wide web), system:expunge is the daemon for MIT's delete/lsdel/undelete utilities to work in a given directory.
+ {{{<permissions>}}}::
+ can be a string of the above letters (in any order) or any of the words `read`, `write`, `all` and `none` which are equivalent to `rl`, `rlidwk`, `rlidwka` and the empty string, respectively 
+
+For example, if `user` wants his friends `sipbtest` and `jarandom` to be able to read and write files and anyone to be able to read files in his `awesome_project` directory, he might have a session that looks like this
+
+{{{
+user@host:~$ cd awesome_project/
+user@host:~/awesome_project$ fs sa . system:anyuser read
+user@host:~/awesome_project$ fs sa . jarandom write
+user@host:~/awesome_project$ fs sa . sipbtest write
+user@host:~/awesome_project$ fs la
+Access list for . is
+Normal rights:
+  system:expunge ld
+  system:anyuser rl
+  sipbtest rlidwk
+  jarandom rlidwk
+  user rlidwka
+user@host:~/awesome_project$
+}}}
+
+
+See also: {{{man 1 fs}}}, {{{fs help <command>}}}
+
+== Creating an AFS Group ==
+The "normal" way to make an AFS group would be with a command similar to {{{pts creategroup <your user name>:<group name>}}} and then add people with {{{pts adduser <user> <full group name>}}}(e.g. If Donald Guy wanted to created a group for people to edit his www directory (including `sipbtest` and `jflorey`, he might use the following chain of commands {{{pts creategroup fawkes:www ; pts adduser sipbtest fawkes:www; pts adduser jflorey fawkes:www; fs sa ~/www fawkes:www write}}}
+
+This method will work, but at MIT, it is much more common to use moira lists as a group. To create a new list, use the web interface at https://wserv.mit.edu:444/fcgi-bin/lc? to create a moira list, NOT A MAILMAN LIST and be sure to check the box for "Should this list be an AFS Group?" (to make an already existing moira list into an AFS group simply {{{blanche -G <list>}}}). After the servers update (which may take anywhere between 1 second and 10 minutes depending on the number of similar requests), the AFS group system:<list name> will exist in the athena.mit.edu cell. 
+
+This is useful because one often wants the same certain people who can operate on files in a folder to be a mailing list. Thus, for example, it is possible to send mail to gnu@mit.edu and use system:gnu as an AFS group on ACLs. (it is also possible to make moira lists that are AFS groups, but not mailing lists).  
+
+see also: {{{man 1 pts}}}
+
+== Controlling Access from the Web ==
+
+If you make a directory listable and readable by system:anyuser then it can be viewed by any user on the web via the urls mentioned [#FromtheWeb above]
+
+Unfortunately, just because you add specific users to an AFS ACL does not mean they can see the folder when the access from the web. IS&T, however, does provide a solution to this. First, make sure that the wanted directory is not readable by system:anyuser. Next {{{fs sa <dir> system:htaccess.mit read }}}. Then create a file named `.htaccess.mit` in that directory. In that file you can do three things, 
+
+ * You can require that the user have valid certificates:
+  {{{
+  <limit GET>
+  require valid-user
+  </limit>
+  }}}
+
+ * You can require the reader be (a) specific user(s), for example:
+  {{{
+  <limit GET>
+  require user fawkes jflorey siptest jarandom
+  </limit>
+  }}}
+ * You can require that the reader be a member of one of certain moira groups (notice these are '''moira''' groups, there is no "system:". For example:
+ {{{
+ <limit GET>
+  require group sipb-staff sipb-prospectives
+ </limit>
+ }}}
+
+There after the users should be able to get to the folders at {{{http'''s'''://web.mit.edu/<locker>/<path to folder>}}} if they have certificates and no one should be able to reach it via http. Make sure to add yourself if you are going to be accessing it.
+
+see also: http://web.mit.edu/is/web/reference/web-resources/https.html
+
+
+= Troubleshooting =
+=== I'm trying to access my files, {{{fs la}}} says I should have permissions here, but it still says {{{: Permission denied}}} ===
+There are two likely possibilities. First, its likely that your tokens may have expired. To get new tokens, make sure you have valid kerberos tickets and then run {{{aklog}}}. Another possibility is that you have tokens but not for the correct cell. {{{tokens}}} will tell you what tokens you already have. In all likelihood, if you are reading this, you probably want {{{aklog athena sipb}}}. Finally, a third possibility is that your group membership has changed since you acquired tokens. Try running {{{aklog -force}}}
+
+=== I'd really prefer that not everyone could list my files, how should I stop this? ===
+What you '''don't''' want to do is take away the l permission from {{{system:anyuser}}} because then no one will be able to get to your `Public` or `www` which you probably don't want. All told, there is no way to stop people on Athena from listing your files (unless you keep everything under `Private` or a similarly restricted directory). It is rather trivial to stop web users, however. A solution I recommend, if you have a website in `www`, is to make a page `redirect.html` (or similar) with the contents like:
+{{{
+<html>
+<head>
+  <meta http-equiv="Refresh" content="0; url=http://www.mit.edu/~<lockername>/">
+</head>
+<body>
+  <p>Please go to my <a href="http://www.mit.edu/~<lockername>/">www</a>!</p>
+</body>
+</html>
+}}}
+
+and then doing a {{{ln -s www/redirect.html index.html}}} in the top level of the locker. Alternatively you can link index.html to a blank file in your `Public` or `www` (you can't simply it in the top level because its not readable there, this will result in a 403 Forbidden error).
+
+=== It was around 6am on a Sunday morning and suddenly I couldn't access my files ===
+Yeah, most AFS servers restart weekly at 6 AM on Sunday.
+
+=== It isn't Sunday and I can't get to my files ===
+There may be a non-scheduled AFS outage. Check [http://3down.mit.edu 3down], hopefully it will be back up soon :-(.
+
+= Advanced Tasks =
+
+
+== Putting Software in a Locker ==
+The Athena environment was designed to allow software to run on several architectures on the same network. On modern Athena, this means 32-bit x86s running Linux, 64-bit x86s running Linux, and SPARCs running Solaris. To accommodate these these various architectures AFS (at least on Athena) has a notion of what systems are compatible with the operating system. You can find these by running {{{fs sysname}}}.
+
+The special variable @sys in a path corresponds to the first of these that matches. When a user runs `add`, {{{/mit/<locker>/arch/@sys/bin}}} is added to their PATH and {{{/mit/<locker>/man}}} or {{{/mit/<locker>/arch/@sys/man}}} is added to their MANPATH.
+
+Primarily because of this fact, a typical locker is set up with the following sort of layout:
+{{{
+user@host:/mit/<some locker>$ tree -dL 2
+.
+|-- arch
+|   |-- i386_linux22
+|   |-- i386_linux24 -> i386_rhel4/
+|   |-- i386_rh9 -> i386_linux24
+|   |-- i386_rhel3 -> i386_rhel4
+|   |-- i386_rhel4
+|   |-- sgi_65
+|   |-- sun4x_510
+|   |-- sun4x_57
+|   |-- sun4x_58 -> sun4x_510/
+|   `-- sun4x_59 -> sun4x_58
+|-- bin -> arch/@sys/bin
+|-- include -> arch/@sys/include
+|-- info
+|-- lib -> arch/@sys/lib
+|-- man
+   `-- man1
+}}}
+
+Please note that the @sys variable should really be used ONLY in these convenience in symlinks. To make the folder in arch you usually want to either pick a more general architecture and set it up yourself or simply use the following command in the top level of the locker:
+{{{mkdir -p arch/$ATHENA_SYS/{bin,lib,include}}}}. After making this folder, make the shortcut symlinks with commands similar to {{{ln -s arch/@sys/bin bin}}} (again, this is the ''ONLY'' time you should use @sys yourself). Other than that, its mainly just a matter of making sure to run configure with options like {{{--prefix=/mit/<lockername>}}} and {{{--with-manpath=/mit/<lockername>/man}}}. 
+
+See also: {{{man lockers}}}
+
+== Acquiring a new locker ==
+While it is easily possible to make an AFS group for yourself, it is harder to get a new locker. If you want a locker for something official like a student group or a piece of software, send an email to [mailto:accounts@mit.edu] explaining what you need it for and someone at IS&T will let you know. If you feel it is something less official or you would just rather consider it a SIPB project (perhaps get other SIPB people involved) send an email to [mailto:sipb-afsreq@mit.edu] instead. In either case, if a mount point under {{{/mit}}} fails to get set up for you, let [mailto:hesreq@mit.edu] know.
+
+= See Also =
+SIPB's older guide, [http://stuff.mit.edu/afs/sipb.mit.edu/project/doc/afs/html/afs-new.html Inessential AFS] [[BR]]
+OpenAFS documentation at [http://www.openafs.org/]
+
diff --git a/doc/BarnOwl b/doc/BarnOwl
new file mode 100644 (file)
index 0000000..26eac59
--- /dev/null
@@ -0,0 +1 @@
+BarnOwl is the Zephyr client used by most SIPB members. Find out more on [http://barnowl.mit.edu/ its wiki].
\ No newline at end of file
diff --git a/doc/BugsTest b/doc/BugsTest
new file mode 100644 (file)
index 0000000..9abbe29
--- /dev/null
@@ -0,0 +1,29 @@
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508124 508124] in [http://packages.debian.org/lenny/python-m2crypto python-m2crypto]
+"Yum crashes when setting-up a CentOS chroot OS"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508133 508133] in [http://packages.debian.org/lenny/libmad0 libmad0]
+"audacity: munmap_chunk(): invalid pointer: 0x00000000026f4eb0"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508194 508194] in [http://packages.debian.org/lenny/sun-java5 sun-java5]
+"sun-java5: New upstream release fixes several security issues"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508257 508257] in [http://packages.debian.org/lenny/twiki twiki]
+"CVE-2008-5305: TWiki SEARCH variable allows arbitrary shell command execution"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508265 508265] in [http://packages.debian.org/lenny/sysprof-module-source sysprof-module-source]
+"sysprof-module-source: doesn't compile on AMD64 arch (wrong register names)"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508272 508272] in [http://packages.debian.org/lenny/gnome-splashscreen-manager gnome-splashscreen-manager]
+"gnome-splashscreen-manager: Refuses to start, undefined symbol: gtk_file_system_error_quark"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508313 508313] in [http://packages.debian.org/lenny/xine-lib xine-lib]
+"xine-lib: CVE-2008-5234 heap overflow in atom parsing"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508322 508322] in [http://packages.debian.org/lenny/wodim wodim]
+"wodim: Cannot load media.  Cannot init drive."
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508324 508324] in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"ftp.debian.org: gcc-4.2-base is not really required"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508351 508351] in [http://packages.debian.org/lenny/open-iscsi open-iscsi]
+"open-iscsi: will not install, looking for missing /sys/module/scsi_transport_iscsi/version file"
diff --git a/doc/CupsOnMac b/doc/CupsOnMac
new file mode 100644 (file)
index 0000000..3f7274b
--- /dev/null
@@ -0,0 +1,11 @@
+CupsMitEdu is a server using the CommonUnixPrintingSystem, the native printing system on Apple and Ubuntu (in fact, Apple bought out CUPS, Inc. recently...). MIT uses LPRng, which is an older printing system, but SIPB runs a CUPS server to make it easier to print from Mac OS and Linux.
+
+To make your Mac (10.5, at least) print to cups.mit.edu, run the following commands at a Terminal:
+{{{
+echo BrowsePoll cups.mit.edu | sudo tee -a /etc/cups/cupsd.conf
+sudo SystemStarter restart PrintingServices
+}}}
+
+You need to do this from an administrator account. Provide your login password when asked.
+
+Then, when you go to a print dialog, "Shared Printers" will pop out and list all the public cluster and dorm printers at MIT.
\ No newline at end of file
diff --git a/doc/Debianization b/doc/Debianization
new file mode 100644 (file)
index 0000000..d6ffa48
--- /dev/null
@@ -0,0 +1,13 @@
+This document is a brief introduction to how to Debianize a piece of software, i.e. to create a package for a Debian or Ubuntu distribution so that it can be managed alongside other system software.
+
+You'll need a few packages for doing Debian development, so you should run
+
+{{{ $ sudo aptitude install build-essential dh-make devscripts cdbs equivs lintian dpatch quilt dpkg-dev }}}
+
+If you're a fan of emacs as a text editor, you should also run
+
+{{{ $ sudo aptitude install debian-el devscripts-el dpkg-dev-el }}}
+
+== Preparing the source ==
+
+To prepare a source directory for Debianization, you'll first want to rename the directory to the form <package>-<version>.
\ No newline at end of file
diff --git a/doc/HackathonIdeas b/doc/HackathonIdeas
new file mode 100644 (file)
index 0000000..77eca45
--- /dev/null
@@ -0,0 +1 @@
+See ProjectIdeas.
diff --git a/doc/KerberizedServer b/doc/KerberizedServer
new file mode 100644 (file)
index 0000000..d9d2fbf
--- /dev/null
@@ -0,0 +1,33 @@
+= Enabling Kerberos logins for your server =
+
+If you want kerberized logins on a server you run, you'll need a '''keytab''' from accounts.  Fill out the [http://web.mit.edu/accounts/www/srvtabform.html keytab request form], which sends them an e-mail.  Ask for a "keytab"; by default they'll give you a srvtab, the Kerberos 4 analogue.
+
+Your new keytab will be in {{{/mit/accounts/srvtabs/FOR_YOURUSERNAME}}}, which is AFS and vaguely insecure.  You probably want to install it in {{{/etc/krb5.keytab}}}, and then randomize the key.
+{{{
+# mv -f /etc/krb5.keytab /etc/krb5.keytab.old  # back up any keytab you already have
+# mv /mit/accounts/srvtabs/FOR_JOEUSER/joeserver-new-keytab /etc/krb5.keytab
+# k5srvutil change
+}}}
+
+Then make sure your {{{/etc/ssh/sshd_config}}} file includes the lines
+
+{{{
+GSSAPIAuthentication yes
+GSSAPIKeyExchange yes
+}}}
+
+This will let you SSH in with Kerberos.
+
+Then create a file called {{{.k5login}}} in the home directory of whichever users you want to be able log into with Kerberos. List the full KerberosPrincipal of each user, one per line (e.g., {{{joeuser@ATHENA.MIT.EDU}}})
+
+== Dealing with srvtabs ==
+
+If you don't specifically mention a "keytab" in your request to Accounts, they may give you the Kerberos 4 equivalent, a srvtab.
+
+In this case you'll want to convert the srvtab to a keytab, like so.
+{{{
+$ ktutil
+ktutil: rst /mit/accounts/srvtabs/FOR_JOEUSER/joeserver-new-srvtab
+ktutil: wkt /etc/krb5.keytab
+ktutil: q
+}}}
diff --git a/doc/LennyBugs b/doc/LennyBugs
new file mode 100644 (file)
index 0000000..803b7f4
--- /dev/null
@@ -0,0 +1,51 @@
+= SIPB Bug-Squashing Hackathon for Lenny =
+
+SIPB is running a '''bug-squashing hackathon''' for release-critical bugs in Debian Lenny.
+
+Place: '''W20-557''', the SIPB office[[BR]]
+Date: '''Saturday''', 2008-12-13, between end-of-classes and finals week[[BR]]
+Time: starting '''2 PM''', running to about 10 PM; come for any portion
+
+Contact the SIPB Chair, Greg Price (`price@mit.edu`), or Vice-Chair, Nelson Elhage (`nelhage@mit.edu`), with any questions.  During the hackathon just call the office at (617) 253-7788.
+
+
+== FAQ ==
+
+'''Q''': What's Lenny?[[BR]]
+'''A''': Lenny is the '''upcoming next stable release''' of Debian GNU/Linux.  It was scheduled for September 2008 but has slipped to spring 2009.  The last release was Etch in spring 2007, so Debian users are eagerly awaiting a new release.
+
+'''Q''': What's a release-critical bug?[[BR]]
+'''A''': A '''release-critical (RC) bug''' is a Debian bug of any of the highest levels of severity.  RC bugs break a program completely, break some users' systems, or do similarly bad things.  At last count there were 109 bugs (below) affecting Lenny.  ('''Update''': After the hackathon it's 105, with more fixes in the pipeline.  Excellent.)  Every one of those bugs has to be dealt with one way or another before Lenny will release.
+
+'''Q''': How is this list of bugs different from [http://bugs.debian.org/release-critical/other/testing.html]?[[BR]]
+'''A''': The list on `bugs.debian.org` includes bugs which have been fixed, but haven't passed a requisite waiting period before being introduced into Lenny. Our list is only bugs for which there is no fix.
+
+'''Q''': I use '''Ubuntu'''.  Why do I care about Debian releases?[[BR]]
+'''A''': Because Lenny is in the final, "freeze", stage of the cycle, many Debian contributors are holding off new versions of the software they maintain in order to focus on stabilizing and bugfixing Lenny.  Since Ubuntu depends on Debian for >90% of its packaging work, that means less new software for Ubuntu until Lenny releases.
+
+'''Q''': I have '''no experience hacking on Debian'''.[[BR]]
+'''A''': No problem, we have three Debian Developers pledged to attend, plus Debian-packaging experts from SIPB's Debathena and XVM projects.  They'll all be focussed on helping newer people find a good bug, make progress and stay unstuck on solving it, and get the fixes applied in Debian.  Just come ready to help with the skills you have; you'll be sure to learn something.
+
+'''Q''': I don't have a lot of programming experience.[[BR]]
+'''A''': No problem, '''not every bug requires programming''' to fix.  Some bugs concern documentation or copyright issues, and anyone willing to track stuff down and write in English precisely can help.  You'll still get experience with the issues software in the real world has to deal with, and probably read some code along the way.
+
+== Useful Resources ==
+
+[http://www.debian.org/doc/debian-policy/ Debian Policy Manual]: There will be people at the hackathon to help you with the packaging and policy aspects of updating Debian packages, but the Debian Policy Manual is a good reference.
+
+[http://www.us.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]: Where the Policy Manual is a fairly declarative document, this is more of a tutorial on how to build packages that comply with Debian policy
+
+[http://debathena.mit.edu/packaging/ tabbott's Packaging Tutorial]: A summary of building Debian packages with CDBS, Tim's tutorial also includes a long list of useful commands for any sort of 
+package development, as well as a list of useful sites
+
+[http://stuff.mit.edu/iap/2009/#debian SIPB IAP class on Debian]: A workshop where you can learn more about Debian packaging (the easy way!  some of the packages you may have dealt with go through unnecessary complexity), with lots of hands-on examples.
+
+== Useful Packages ==
+
+The following Debian packages are useful for doing Debian development: `build-essential cdbs debhelper wdiff devscripts dh-make dpatch dpkg-awk dpkg-dev equivs fakeroot lintian quilt`
+
+If you're an emacs user, you may also want: `debian-el devscripts-el dpkg-dev-el`
+
+== The Bugs ==
+
+See LennyBugsAll for a complete list.  Attack one of the bugs that look good, or read through the unclassified ones to find the good ones.
diff --git a/doc/LennyBugsAll b/doc/LennyBugsAll
new file mode 100644 (file)
index 0000000..5cdc680
--- /dev/null
@@ -0,0 +1,571 @@
+= Open RC Bugs in Lenny =
+
+These are bugs to consider at SIPB's [LennyBugs RC-bug-squashing hackathon] for Lenny.
+
+Bug list dumped early 2008-12-12.  The pipeline was
+ `$ cd /mit/debathena/debian-bts && ./get_bugs | sort | ./bugs-format-trac`
+
+Please sort into useful/not useful, add notes, etc.
+
+----
+
+= Juicy? =
+
+All acted on!  See the "Stuff we did" sections below.
+
+
+
+----
+
+= Stuff we did =
+
+== Fixed by SIPB! ==
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=436140 436140]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"cdrom: Most of the system's files have a future timestamp causing at least update/config problems."
+(closed by wdaher)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476525 476525] 
+in [http://packages.debian.org/lenny/python-hid python-hid] 
+"python-hid: hid module will not import since python policy transition" 
+(tabbott)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507071 507071] 
+[http://packages.debian.org/lenny/racoon racoon] 
+"racoon - Fails after upgrade: symbol lookup error: /usr/sbin/racoon: undefined symbol: libipsec_opt" 
+(fixed by broder)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507072 507072] 
+in [http://packages.debian.org/lenny/ipsec-tools ipsec-tools] 
+"libipsec0 packaged in ipsec-tools without development headers" 
+(downgraded by hartmans)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504626 504626] 
+in [http://packages.debian.org/lenny/nvidia-glx nvidia-glx] 
+"[nvidia-glx] Quietly drops support for several chipsets" 
+(downgraded by nelhage)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502845 502845]
+in [http://packages.debian.org/lenny/open-iscsi open-iscsi]
+"open-iscsi: no login using amd64"
+(quentin reassigned; Bastian Blank then lowered priority)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508265 508265]
+in [http://packages.debian.org/lenny/sysprof-module-source sysprof-module-source]
+"sysprof-module-source: doesn't compile on AMD64 arch (wrong register names)"
+(patch added by andersk)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506057 506057]
+in [http://packages.debian.org/lenny/splashy splashy]
+"splashy: Splashy fails to install due to missing default theme"
+(fix suggestion added by ecprice with help from tabbott and fawkes)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506748 506748]
+in [http://packages.debian.org/lenny/rtorrent rtorrent]
+"crash rtorrent by scgi-interface (function: 'fi.get_filename_last')"
+(submitted patch that disables broken RPC; leaving to maintainer to decide if this is what he wants to do)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=426465 426465]
+in [http://packages.debian.org/lenny/initramfs-tools initramfs-tools]
+"/init exports MODPROBE_OPTIONS=-qb"
+[[BR]](patch added by price)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489501 489501]
+in [http://packages.debian.org/lenny/zekr zekr]
+"zekr depends on libxul0d"
+[[BR]](mako tweaked and sponsored fix by Asheesh Laroia)
+
+== Waiting on feedback ==
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502140 502140]
+in [http://packages.debian.org/lenny/pam pam]
+"cannot unlock screen during etch -> lenny transition"
+(hartmans added comment)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481072 481072]
+in [http://packages.debian.org/lenny/dk-filter dk-filter]
+"dk-filter reliably crashes upon connection from postfix"
+[[BR]](quentin couldn't reproduce)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507883 507883]
+in [http://packages.debian.org/lenny/asterisk asterisk]
+"asterisk: Very frequent segfaults on startup"
+(quentin couldn't reproduce)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456037 456037]
+in [http://packages.debian.org/lenny/fenix fenix]
+"fenix: not 64 bit clean"[[BR]]
+(ezyang observed upstream's website looks ~dead)
+
+
+
+
+----
+
+= Fun stuff to read =
+
+== Flamewars ==
+
+You might enjoy reading these, but they may not be good targets to fix.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475737 475737]
+in [http://packages.debian.org/lenny/otrs2 otrs2]
+"otrs2 - makes files in /usr writable by non-root"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504771 504771]
+in [http://packages.debian.org/lenny/wordpress wordpress]
+"wordpress can be subject of delayed attacks via cookies"
+
+For this one, the actual flameware is off the bug report log.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=497823 497823]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"longstanding DFSG violations in linux-2.6 package"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504747 504747]
+in [http://packages.debian.org/lenny/gnu-fdisk gnu-fdisk]
+"gnu-fdisk: wipes out MBR when used on GPT partitions"
+
+
+== Would have been fun ==
+
+Entertaining to read but sadly already fixed.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506961 506961]
+in auctex
+"auctex: reuses old logfile on emacsen upgrades, enabling symlink attack"
+
+
+== Examples to live up to ==
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496954 496954]
+in [http://packages.debian.org/lenny/bind9 bind9]
+"bind9: Fails to start due to SIGSEGV"
+[[BR]]This bug sat unfixed for months.  Then someone attacked it in a bug-squashing party,
+got the first reproducible testcase, and sent that upstream, which swiftly produced a fix.
+
+
+== Puzzling ==
+
+Someone please explain what's going on (Debian Project-wise) in these bugs.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=323473 323473]
+in [http://packages.debian.org/lenny/wnpp wnpp]
+"ITA: mol-drivers-linux -- The Mac-on-Linux emulator - drivers for Linux"
+[[BR]](Note: The bug is for someone to take over maintainership.  They did.  Then when the bug gets automatically archived, they reply saying to keep it?  I (price) don't understand.)
+
+
+
+
+----
+
+= Not so ripe for us to fix =
+
+== Specific hardware ==
+
+If you have the relevant hardware you could help a lot.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=394963 394963]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"installation: Problems with dual booting Dell D600 with winXP pro in the first partition (hd0, 0). After installing the Dell Etch Beta 3, Windows fails to boot and I get the blue screen of death."
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418972 418972]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"cdrom: Etch does not detect CD-ROM on Acer Aspire 7100"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478717 478717]
+in [http://packages.debian.org/lenny/ruby1.9 ruby1.9]
+"ruby1.9: FTBFS on hppa: make[1]: *** [all] Segmentation fault"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499078 499078]
+in [http://packages.debian.org/lenny/jfsutils jfsutils]
+"jfsutils: Bus Error when running fsck.jfs on sparc"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=501804 501804]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"installation-reports: Lenny b2 install on ThinkPad X61 - fails to detect hard disk"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495603 495603]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"grub-installer fails on a FSC Primergy RX300 with a level 5 RAID"
+
+
+== May be a lot of work ==
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=490171 490171]
+in [http://packages.debian.org/lenny/rtorrent rtorrent]
+"rtorrent: random crash"
+[[BR]](Reproducing this seems to require runnin 20+ torrents for a ~day)
+
+
+== Unclassified ==
+
+Please read these reports and figure out what category they belong in.  Or make a new category.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504661 504661]
+in [http://packages.debian.org/lenny/nvidia-glx-legacy-96xx-dev nvidia-glx-legacy-96xx-dev]
+"nvidia-glx-legacy-96xx-dev: /usr/lib/libGL.so symlink broken"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504918 504918]
+in [http://packages.debian.org/lenny/network-manager network-manager]
+"Updating to lenny failed when NetworkManager got updated"
+
+== Unclassified Security ==
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505563 505563]
+in [http://packages.debian.org/lenny/icedove icedove]
+"Mozilla Thunderbird Multiple Vulnerabilities"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507165 507165]
+in [http://packages.debian.org/lenny/xine-lib xine-lib]
+"xine-lib: CVE-2008-5242 heap-based buffer overflow"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507184 507184]
+in [http://packages.debian.org/lenny/xine-lib xine-lib]
+"xine-lib: CVE-2008-5246 heap overflow"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504977 504977]
+in [http://packages.debian.org/lenny/ffmpeg-debian ffmpeg-debian]
+"ffmpeg-debian: Several security issues"
+
+== Fresh bugs ==
+
+These are very recent and presumably will get dealt with by the package maintainers without help.
+
+If you're bored you might look through and see if some are interesting anyway.  Also feel free to draw the line at some other time; I (price) picked December 1, arbitrarily.
+
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239111 239111]
+in [http://packages.debian.org/lenny/grub grub]
+"Freeze when installing GRUB on XFS boot partition"
+[[BR]](Note: just re-opened 2008-12-12)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507558 507558]
+in [http://packages.debian.org/lenny/hibernate hibernate]
+"ignores "LockXLock yes" setting in /etc/hibernate/common.conf (e.g. does not lock the screen)"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507579 507579]
+in [http://packages.debian.org/lenny/yocto-reader yocto-reader]
+"Package installation results in license violation"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507706 507706]
+in [http://packages.debian.org/lenny/cdimage.debian.org cdimage.debian.org]
+"Missing sources for d-i components/kernel of etch-n-half images"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507721 507721]
+in [http://packages.debian.org/lenny/cryptsetup cryptsetup]
+"cryptsetup: Sometimes initrd ends up missing conf/conf.d/cryptroot file in it"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507818 507818]
+in [http://packages.debian.org/lenny/mldonkey-server mldonkey-server]
+"mldonkey-server: mlnet does not start, logs syntax error in downloads.ini"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507865 507865]
+in [http://packages.debian.org/lenny/openoffice.org-writer openoffice.org-writer]
+"openoffice.org-writer: OOo 2.4.x openinig OOo 3 files doesn't show text (2.x implements standard wrong)"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507889 507889]
+in [http://packages.debian.org/lenny/mdadm mdadm]
+"mdadm: initramfs-tools script is broken, system with root on RAID won't boot"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507996 507996]
+in [http://packages.debian.org/lenny/uim-tcode uim-tcode]
+"mazegaki conversion cannot be used"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508133 508133]
+in [http://packages.debian.org/lenny/libmad0 libmad0]
+"audacity: munmap_chunk(): invalid pointer: 0x00000000026f4eb0"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508194 508194]
+in [http://packages.debian.org/lenny/sun-java5 sun-java5]
+"sun-java5: New upstream release fixes several security issues"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508313 508313]
+in [http://packages.debian.org/lenny/xine-lib xine-lib]
+"xine-lib: CVE-2008-5234 heap overflow in atom parsing"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508322 508322]
+in [http://packages.debian.org/lenny/wodim wodim]
+"wodim: Cannot load media.  Cannot init drive."
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508324 508324]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"ftp.debian.org: gcc-4.2-base is not really required"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508434 508434]
+in [http://packages.debian.org/lenny/ipmitool ipmitool]
+"ipmitool: Several init script problems due to wrong pidfile name"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508443 508443]
+in [http://packages.debian.org/lenny/imagemagick imagemagick]
+"convert crash on sparc during compilation of djvulibre (work on x86-64)"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508480 508480]
+in [http://packages.debian.org/lenny/iodbc iodbc]
+"iodbc: Segfaults when asking for the available DSNs"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508392 508392]
+in [http://packages.debian.org/lenny/dpkg dpkg]
+"Handling of conflicting conffiles broken"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508565 508565]
+in [http://packages.debian.org/lenny/f2c f2c]
+"f2c: does not translate properly in EMT64 machines"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508551 508551]
+in [http://packages.debian.org/lenny/merkaartor merkaartor]
+"merkaartor: crash on startup: QPaintEngine::setSystemClip: Should not be change
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508589 508589]
+in [http://packages.debian.org/lenny/linux-2.6 linux-2.6]
+"ppp: USB Modem removal after PPP exits kills keyboard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508660 508660]
+in [http://packages.debian.org/lenny/autopkgtest-xenlvm autopkgtest-xenlvm]
+"adtxenlvm: initscript assumes eth0"
+
+== Mostly solved? ==
+
+These look like good progress is being made and they'll get fixed
+soon. Do we need a DD to do an NMU on any of these?
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504283 504283]
+in [http://packages.debian.org/lenny/egroupware-core egroupware-core]
+"CVE-2007-3215: phpmailer issue (embedded code-copy)"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508510 508510]
+in [http://packages.debian.org/lenny/debget debget]
+"Can't parse packages.debian.org output anymore"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=332782 332782]
+in [http://packages.debian.org/lenny/release-notes release-notes]
+"release-notes: Where's the license?"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475958 475958]
+in [http://packages.debian.org/lenny/release-notes release-notes]
+"document procedure to recover from "/dev/hda became /dev/sda" boot failure"
+[[BR]](Note: looks done, just not closed.)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506883 506883]
+in [http://packages.debian.org/lenny/tuxguitar tuxguitar]
+"tuxguitar: hard-codes dependencies on libraries"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495178 495178]
+in [http://packages.debian.org/lenny/libjs-jquery libjs-jquery]
+"libjs-jquery: Should compile jquery.min.js and jquery.pack.js from jquery.js"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507059 507059]
+in [http://packages.debian.org/lenny/initramfs-tools initramfs-tools]
+"initramfs-tools: Wrong check for udevadm in functions"
+[[BR]](No maintainer activity since it was reported 2 weeks ago; One-line patch attached.)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496334 496334]
+in [http://packages.debian.org/lenny/mdadm mdadm]
+"mdadm segfault on --assemble --force with raid10"
+[[BR]]Seems to be fixed and uploaded, but got reopened for some reason?
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374644 374644] in [http://packages.debian.org/lenny/xine-ui xine-ui]
+"xine-ui: ctrl/shift key press emulation implementation broken"
+[[BR]](Note: There's a patch that may be good enough -- blocking on some guy responding)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505237 505237]
+in [http://packages.debian.org/lenny/snmpd snmpd]
+"/etc/init.d/snmpd start reports error if already running"
+(Note: fixed, waiting on an upload?)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508257 508257]
+in [http://packages.debian.org/lenny/twiki twiki]
+"CVE-2008-5305: TWiki SEARCH variable allows arbitrary shell command execution"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508026 508026]
+in [http://packages.debian.org/lenny/phppgadmin phppgadmin]
+"phpPgAdmin: Local File Inclusion Vulnerability"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=501800 501800]
+in [http://packages.debian.org/lenny/bind9 bind9]
+"bind9: bind crashes with a list for allow-update"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503532 503532]
+in [http://packages.debian.org/lenny/dbus dbus]
+"send_requested_reply="true" allows all non-reply messages"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506741 506741]
+in [http://packages.debian.org/lenny/wireshark wireshark]
+"wireshark: DoS caused by sending a SMTP request with large content"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503303 503303]
+in [http://packages.debian.org/lenny/upgrade-reports upgrade-reports]
+"etch -> lenny minimal chrrot upgrade fails due to Conflicts/Pre-Depends loop"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504524 504524]
+in [http://packages.debian.org/lenny/sun-java6 sun-java6]
+"AWT_TOOLKIT=MToolkit causes java to segfault on amd64"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503712 503712]
+in [http://packages.debian.org/lenny/ghostscript ghostscript]
+"etch->lenny upgrade left the system in broken state"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508635 508635]
+in [http://packages.debian.org/lenny/libexif-gtk-dev libexif-gtk-dev]
+"libexif-gtk-dev: References no longer existing libXcursor.la"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=500460 500460]
+in [http://packages.debian.org/lenny/oss-compat oss-compat]
+"oss-compat: modules are not loaded"
+
+
+== Not much of use one can do ==
+
+(waiting on reporter to reproduce)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=494293 494293]
+in [http://packages.debian.org/lenny/installation-reports installation-reports]
+"installation-reports: Grub error: not a regular file..."
+
+(this one looks like it'll be removed from Lenny or have amd64 disabled)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507021 507021]
+in [http://packages.debian.org/lenny/helpdeco helpdeco]
+"Fails to work on amd64"
+
+(this one looks the maintainer has labeled unreproducible)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507242 507242]
+in [http://packages.debian.org/lenny/amule-daemon amule-daemon]
+"amule-daemon: causes OOM's by leaking lots of memory"
+
+(waiting on upstream)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506652 506652]
+in [http://packages.debian.org/lenny/xml2rfc xml2rfc]
+"Yet another boilerplate change"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=490999 490999]
+in [http://packages.debian.org/lenny/libqt3-mt libqt3-mt]
+"kicker: crashes on startup"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507947 507947]
+in [http://packages.debian.org/lenny/moodle moodle]
+"moodle: html2text.php is not DFSG-free"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495232 495232]
+in [http://packages.debian.org/lenny/quagga quagga]
+"quagga: zebra ignores routes added via command line"
+
+(misc)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508091 508091]
+in [http://packages.debian.org/lenny/tuxguitar tuxguitar]
+"maintainer address bounces"
+
+(trivial fix may cause regression, may punt)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507003 507003]
+in [http://packages.debian.org/lenny/open-iscsi open-iscsi]
+"initiatorname.iscsi should maybe not be in /etc"
+
+(legal issue involving non-free file)
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502751 502751]
+in [http://packages.debian.org/lenny/clamav-getfiles clamav-getfiles]
+"clamav-getfiles: piuparts test fails: eicar.com md5sum mismatch, file needs downloading"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506353 506353]
+in [http://packages.debian.org/lenny/mailscanner mailscanner]
+"CVE-2008-5312/3: mailscanner might allow local users to overwrite arbitrary files via a symlink attack"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507316 507316]
+in [http://packages.debian.org/lenny/smarty smarty]
+"smarty: Non-free logo included in package"
+
+
+== Special team bugs ==
+
+These bugs are probably not good targets because the work involved with them at this point is to be done by someone on a special Debian team.
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451628 451628]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"Packages might enter the archive from security without source"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506152 506152]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libept0 should have priority important"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507675 507675]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"python2.5 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507678 507678]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libsqlite3-0 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507775 507775]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libkeyutils1 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507778 507778]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libldap-2.4-2 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507779 507779]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"[Priorities] libustr-1.0-1 -> standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507780 507780]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"python-sepolgen should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507783 507783]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libxml2 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507784 507784]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"python2.5-minimal should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507796 507796]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libisccfg40 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507797 507797]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libisccc40 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507798 507798]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libedit2 should have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507799 507799]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libgssglue1 must have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507800 507800]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"ucf must have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507801 507801]
+in [http://packages.debian.org/lenny/ftp.debian.org ftp.debian.org]
+"libpci3 must have priority standard"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=497471 497471]
+in [http://packages.debian.org/lenny/cdimage.debian.org cdimage.debian.org]
+
+"sarge images have syslinux binaries without source"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506977 506977]
+in [http://packages.debian.org/lenny/release.debian.org release.debian.org]
+"FPC: copyright infringement in pre 2.2.2 sources"
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507239 507239]
+in [http://packages.debian.org/lenny/release.debian.org release.debian.org]
+"RM: astrolog/stable -- RoQA; orphaned long time, non-free, contains potentially undistributable code"
+
+This one is fixed in experimental:
+
+
+
+[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503907 503907]
+in [http://packages.debian.org/lenny/libwebkit-1.0-1 libwebkit-1.0-1]
+"epiphany-webkit: Crashes at startup whenever I go to a site."
+
+
diff --git a/doc/ProjectIdeas b/doc/ProjectIdeas
new file mode 100644 (file)
index 0000000..23339ba
--- /dev/null
@@ -0,0 +1,82 @@
+Here are ideas you can try to get started on a SIPB project.  Some of
+these are mature projects with active new development a new
+contributor can help out with, others are only grand plans that need
+someone to take them on as their own.
+
+Talk to the people identified for each project to see how you can
+help, or ask the SIPB Chair (`price`) or Vice-Chair (`nelhage`).  The
+descriptions here are usually accurate but the projects are constantly
+changing.
+
+If you have a project and want people to help, go ahead and add it.
+
+ * SIPB website (sipb.mit.edu) -- talk to `price`
+  * We're working on making the website a wiki, which will hopefully
+    help it get and stay up to date in the long term.  The core software
+    should be up before the hackathon.
+  * write stuff about SIPB
+  * convert material from the old sites and this doc wiki
+  * help style it to look good
+
+ * mailman.mit.edu hacking -- Talk to `kcr` or `nelhage`
+  * There are two ways to create mailing lists at MIT -- Moira, and
+    Mailman. Moira has much better integration with MIT
+    infrastructure, but doesn't support spam-filtering or interfaces
+    for non-MIT users. Mailman is the opposite. Jeff Schiller has
+    expressed some willingness to deploy patches to make Mailman
+    integrate better with MIT's infrastructure, if someone else were
+    to write them.
+  * There are a number of ways this could be implemented, including
+    moira <-> Mailman sync, direct Moira integration in Mailman, or
+    something in between or different.
+  * MIT runs Mailman 2, but Mailman 3
+    [http://mail.python.org/pipermail/mailman-announce/2009-January/000126.html has been released]
+    as alpha and may be worth investigating.  The author is explicitly
+    open to major changes for mailman 3, so we could push some of our work upstream.
+
+ * Dodona -- Talk to `jhamrick`
+  * `jhamrick` is working on a Zephyr bot designed to answer technical
+    questions using a natural-language interface, and is looking for
+    people to help hack on it.
+  * create a web interface using pyjamas (or something else?) for people who don't use zephyr
+  * figure out the best way to store and retrieve technical data.  Currently
+    Dodona pulls from a text file and parses that information into a dictionary.
+  * improve Dodona's UI
+  * IF (and only if) we finish all of the above, start the NLP! (the fun part!)bbb
+
+
+ * `scripts.mit.edu` -- Talk to `geofft` or `quentin`
+  * Find some software we don't have an autoinstaller for, and write an
+    autoinstaller for it. Or update an autoinstaller to a newer version of the
+    software. This doesn't require a lot of code, since we have several
+    autoinstallers already written, but will require a bit of testing.
+  * Add a web interface for scripts users to edit their LDAP entries, which are
+    internal entries that affect several things about their site
+  * Read through already answered e-mails and update the FAQ on the website and
+    other parts of our documentation. This is a great way to learn how scripts
+    works
+  * Write a blog aggregator, something like planet.debian.org, so that scripts
+    blog users can publish their entries on certain topics to an MIT-wide blog
+
+ * XVM - talk to `price` or `broder`
+  * validate more operations at remote rather than web
+  * expose more operations over remctl in addition to web
+  * put our hosts in Moira
+  * ajaxify / javascriptify the website
+  * Give the website a stylistic facelift.
+
+ * voip-scripts - talk to `geofft`
+  * read about Asterisk, AGI, study `captain-crunch:/etc/asterisk` and `/var/lib/asterisk`
+  * figure out draft suexec code at `/var/lib/asterisk/agi-bin/suexec.c`
+  * figure out or ask what's not working, figure out how to do it
+
+ * Documentation project
+  * Assemble good documentation of AFS from a user's perspective. There's lots of
+    documentation, but only small parts are good and useful.
+  * Cull old Ask SIPB columns into documentation.
+  * Cull documentation into new Ask SIPB columns.
+
+ * Archiver - talk to `nelhage`
+   We want to build a mail archiving system for Moira lists. We're
+   planning to store mail into AFS, and expose archives via AFS, IMAP,
+   and the web.
diff --git a/doc/QuickPrint b/doc/QuickPrint
new file mode 100644 (file)
index 0000000..f99a1a0
--- /dev/null
@@ -0,0 +1,3 @@
+= QuickPrint =
+
+QuickPrint is a SIPB service that allows anyone with an MIT Kerberos identity to print to Athena cluster printers.
\ No newline at end of file
diff --git a/doc/RootInstance b/doc/RootInstance
new file mode 100644 (file)
index 0000000..d7a64a6
--- /dev/null
@@ -0,0 +1,38 @@
+= Root and Extra Instances =
+
+This page explains why you want a ''root instance'' `joeuser/root@ATHENA.MIT.EDU` and an ''extra instance'' `joeuser/extra@ATHENA.MIT.EDU`, how to get them, and how to use them well.
+
+=== Background ===
+
+There are three parts of a Kerberos name: a ''principal'', an optional ''instance'', and a ''realm''. The principal is typically your username (for Kerberos identities belonging to a user), and the realm, at MIT, is usually ATHENA.MIT.EDU. (Other realms you may see are CSAIL.MIT.EDU, ZONE.MIT.EDU, CS.CMU.EDU, etc.) For the Kerberos identity you typically regard as your own, the one that you use to log in to Athena with your regular password, the instance is null (empty). However, you can ask for additional instances, usually a "root" or "extra" instance. You can use them in places where you wouldn't want to use your regular Athena password. You usually write a non-null instance as, e.g., joeuser/root@ATHENA.MIT.EDU.
+
+The entire triplet is also often referred to as a principal or instance, depending on context: "There are two Kerberos principals that can log in to this server, namely, my extra instance and my root instance. My null instance can't log in."
+
+=== Typical use ===
+
+Root instances are often used when logging in to servers that have some security import. Most students regularly log in to Athena cluster workstations and quickstations and often type their password on other people's laptops to SSH or get to webmail. This puts the password at huge risk for theft. Athena passwords [http://tech.mit.edu/V125/PDF/N20.pdf have been stolen from clusters in the past], so it's not the wisest idea to let servers that you're asking hundreds of people to log into and use be controlled by a password you're typing everywhere.
+
+So you get a root instance, and only type the root instance password on computers you trust and only when you need to. Many people only ever type it on their laptop, or on a freshly booted Live CD. Some people feel comfortable typing it on a few private Athena workstations (SIPB office heads are a common choice), but if an attacker has stolen your regular (null instance) password and installed a keylogger on your account, it doesn't matter where you're logging in if it's still your Athena account.
+
+You can also make things in Moira or AFS owned by your root instance, if you don't want your null instance to be able to mess with mailing lists or lockers. For Moira, make them owned by KERBEROS:yourname.root@ATHENA.MIT.EDU. (For legacy Kerberos 4 reasons Moira and AFS both use a dot instead of a slash to separate the principal and the instance.) For AFS, ask accounts or afsreq to get you a 'pts id', basically
+an account with the AFS servers, and then you can give bits to yourname.root and start blanching your root instance onto AFS groups.
+
+To use another instance, just specify it to the kinit command, e.g., "kinit joeuser/root".
+
+=== Handy scripts ===
+
+Because you would want to use your null instance tickets most of the time but your root instance tickets occasionally, a couple of people have developed shell scripts to make it easy to switch between them.
+
+ * nelhage has the [http://web.mit.edu/nelhage/Public/krbroot krbroot command], which you use syntax like "krbroot ssh linerva" when you want to use your root instance for a command. You can also "krbroot shell".
+ * quentin has [http://web.mit.edu/quentin/Public/mac-bashrc kdo], which is similar in spirit to krbroot, but designed for Mac OS X. It takes advantage of the fact that OS X's Kerberos implementation is better at handling multiple tickets.
+ * geofft has [http://web.mit.edu/geofft/Public/bashrc.kpagsh kpagsh], a way of configuring your .bashrc to prompt you for tickets (null instance by default) if you start a shell and don't have tickets. If you want to switch tickets, you start a new shell, and also a new PAG, which lets you use multiple AFS credentials at once, too. It also modifies your prompt.
+
+These aliases are also careful to get shorter lifetime tickets that are marked nonforwardable. Some versions of SSH try to forward tickets by default. Since you might let your root instance tickets access many servers, but not trust all of these servers equally, you don't want your tickets to be forwardable. (Thankfully, recent Debian, Ubuntu, and OS X have turned off this default, but it's a good precaution.)
+
+=== Extra instances ===
+
+Another thing you might want is an ''extra instance''. Some people use these just like another root instance, with slightly lower security. But a common use is something _less_ secure than your null instance. For example, if you're writing a zephyrbot to run on a shared server like scripts.mit.edu, the zephyrbot will need Kerberos tickets to subscribe to zephyrs. But you don't want to leave your Kerberos password in a file in your locker, so you can leave your extra instance's password instead.
+
+=== Getting them ===
+
+You need to show up in person to IS&T User Accounts in N42 with a photo ID to obtain new Kerberos identities. For the reasons described above, being in control of your null instance and sending a zephyr or authenticated e-mail with it does not mean that you can go ahead and make changes to your root or extra instance too.  While you're there, be sure to ask for a pts id, if you want to use your tickets with AFS.
diff --git a/doc/SummerReading b/doc/SummerReading
new file mode 100644 (file)
index 0000000..7a5be2f
--- /dev/null
@@ -0,0 +1,31 @@
+= Articles =
+
+ * [http://web.mit.edu/Kerberos/dialogue.html The Kerberos play]: explains why Kerberos works the way it does
+ * [http://www.jwz.org/doc/worse-is-better.html The Rise of Worse is Better]: a brief description of the single coding philosophy that most influenced the design of UNIX and many related systems. The [http://web.mit.edu/geofft/Public/gabriel-on-lisp.ps entire article], rather than just the section, is available in PostScript
+ * Tim Berners-Lee's [http://www.w3.org/DesignIssues/ Design Issues] section, and his piece on why [http://www.w3.org/Provider/Style/URI Cool URIs Don't Change]
+ * A definition of [http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html yak shaving], which you'll often find SIPB members unwisely engaging in.
+ * [http://www.gnu.org/philosophy/philosophy.html GNU Philosophy], hardline but worth reading.
+ * On that note, the [http://www.gnu.org/licenses/gpl.html GPLv3] and [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPLv2]. Dense legal style, but also worth reading once, to understand what free software is about
+ * [http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ The Cathedral and the Bazaar], by Eric Raymond: an overview of closed-source ("cathedral") vs. open-source ("bazaar") design and participation philosophies
+ * [http://www.paulgraham.com/nerds.html Why Nerds are Unpopular], by Paul Graham
+ * [http://web.mit.edu/ghudson/info/athena How Athena Works], by Greg Hudson, longtime Athena engineer and SIPB member
+ * [http://www.jwz.org/doc/threading.html The e-mail threading algorithm], by Jamie Zawinski (jwz), old Netscape hacker. Interesting not only for the algorithm per se, but for his description of the process leading to its development, and his [http://www.jwz.org/doc/mailsum.html lost argument with Netscape 4's engineers] against replacing the algorithm with something overengineered
+
+= Books online =
+
+ * Abelson and Sussman, [http://mitpress.mit.edu/sicp/full-text/book/book.html Structure and Interpretation of Computer Programs]: the classic textbook for the famous 6.001
+ * Eric Raymond, [http://www.catb.org/esr/writings/taoup/html/index.html The Art of Unix Programming]: also explains a lot of design
+ * Mark Pilgrim, [http://diveintopython.org/ Dive Into Python]: "a Python book for experienced programmers"
+ * Eric Raymond, ed., [http://catb.org/~esr/jargon/ The Jargon File]: a lot of hacker terminology and lore, plus quite a few interesting articles near the beginning.
+
+Don't forget about [http://safari.oreilly.com/ Safari] -- O'Reilly books online, free for MIT people.
+
+= Blogs, etc. =
+ * [http://www.joelonsoftware.com Joel on Software], a software developer in charge of a small company who writes well
+  * [http://www.joelonsoftware.com/articles/Wrong.html Making Wrong Code Look Wrong]
+  * [http://www.joelonsoftware.com/articles/LeakyAbstractions.html The Law of Leaky Abstractions]
+  * [http://www.joelonsoftware.com/articles/fog0000000069.html Things You Should Never Do], i.e., rewrite software from scratch
+  * [http://www.joelonsoftware.com/articles/Unicode.html The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)]
+ * [http://blogs.msdn.com/oldnewthing/ The Old New Thing], an engineer for MS who writes about stupid hacks in the name of backwards compatibility
+ * [http://www.jwz.org/doc/ Jamie Zawinski's] writings / rants. jwz developed Netscape 1-3, and played a role in the open sourcing of Netscape as Mozilla.
diff --git a/doc/TraditionalZephyr b/doc/TraditionalZephyr
new file mode 100644 (file)
index 0000000..60c094f
--- /dev/null
@@ -0,0 +1,42 @@
+= Traditional Zephyr (archaic) =
+
+For information on using Barnowl, see UsingZephyr.
+
+When you log into Athena, you may occasionally see a white box pop up with text on it.  This is Zephyr in it's traditional form.
+
+== Terminology ==
+
+'''windowgrams''' are the small windows that appear on your screen with a message from another person.
+
+'''Zephyrgrams''' are the messages that you send and receive when you are using Zephyr. They can appear as windowgrams or in other forms, depending on which client you are using. 
+
+
+'''zwgc''' is the basic, traditional Zephyr client.
+
+== Basic Commands ==
+
+'''zlocate''' '''''friend''''' is the command used to find out if user "friend" is logged in and subscribing to zephyrgrams. If they are logged in and subscribing to messages you will receive information about where they are logged in. If they are not logged in you will receive the message "Hidden or not logged-in." This means they either do not want to be found or are not logged in.
+
+'''zwrite''' '''''friend''''' is used to send a message to {{{friend}}}. Just follow the instructions given. If you get an error saying the person is hidden or not logged in then your message has not been sent and the person you are trying to reach is not logged in or is not subscribing to messages and you should try sending e-mail instead.
+
+'''zctl hide''' can be used to "hide" yourself. When hidden you are not {{{zlocatable}}}, but if someone tries to zwrite you anyway they will succeed. 
+
+'''zctl wg_shutdown''' should be used if you want to stop receiving zephyrgrams for this session.
+
+'''zctl set zwrite-signature "foo"''' (quotes are mandatory) will change your Zephyr signature, or zsig, to foo. By default your zsig is your name as it exists in your finger information. It shows up in a zephyrgram before your username. You can change it to almost anything you like, although you should avoid very long zsigs since they tend to annoy people. 
+
+'''zaway''' is used to let people know you are away from the terminal and not deliberately ignoring their messages. It sends a message to whoever sends you a personal zephyrgram that lets them know that you are away (and will probably respond later). 
+
+'''zwgc -ttymode''' will start up a Zephyr client when you are logged in remotely. Zephyrs appear as plain text on your screen. 
+
+'''znol''' will let you know which people on a list are logged in. Your {{{~/.anyone}}} file should contain the list of usernames you want to know about (it should have one name per line and no spaces). You will also be sent login and logout notices in the form of a zephyrgram whenever one of the users in your list logs in or out (if they are announced, see below) after you have run {{{znol}}} during a session. 
+
+'''zctl set exposure exposurelevel''' will set your exposure (how other people know when you are logged in). An exposure level of {{{net-announced}}} causes login and logout notices to be sent to people who have you in their {{{.anyone}}} file, and you will be zlocatable. {{{net-visible}}} is the same except login and logout notices are not sent. The {{{realm-announced}}}  and {{{realm-visible}}} settings require authentication before your information is divulged, but behave in most situations in the same way as {{{net-announced}}} and {{{net-visible}}}, respectively. The {{{opstaff}}}  setting makes you unable to be zlocated and does not send login and logout notices. Finally the {{{none}}} setting provides no information about you and '''you will not be able to receive zephyrgrams'''.
+
+'''zctl sub message foo *''' will subscribe you to a Zephyr "instance" named foo. Zephyr instances (and classes) allow groups of people to have conversations via Zephyr. The above {{{zctl}}} command will subscribe you to the instance {{{foo}}} for your current login only; to make it more permanent replace {{{sub}}} with {{{add}}}. To unsubscribe for this login only change {{{sub}}} to {{{unsub}}}, and to unsubscribe permanently use {{{delete}}} instead. 
+
+'''zwrite -i foo''' will send a message to the Zephyr instance {{{foo}}}.
+
+'''zctl sub foo * *''' subscribes you to the Zephyr class {{{foo}}}. Zephyr classes are slightly more private than instances as you must know the name of the class to subscribe to it. {{{unsub}}}, {{{add}}} and {{{delete}}} work the same way for classes as for instances. 
+
+'''zwrite -c foo''' sends a zephyr(gram) to class {{{foo}}}. 
\ No newline at end of file
diff --git a/doc/UsingScreen b/doc/UsingScreen
new file mode 100644 (file)
index 0000000..eb0f875
--- /dev/null
@@ -0,0 +1,45 @@
+= Using Screen =
+
+== Why? ==
+
+{{{screen}}} is a handy tool.  It lets you get more out of a terminal session, whether in a window, via ssh, or by some more esoteric means.
+It's original reason for existence was allowing you to switch between subsessions on a [http://en.wikipedia.org/wiki/Video_terminal video-display terminal],
+but grew to allow sessions that could be detached and reattached (if you went home for the day, or say you were connecting via a glitchy network) and eventually
+to allow the same session to be simultaneously accessed from multiple places.
+
+== Getting Started ==
+
+ 1.  Pick a machine to run your screen session on.  If you don't know of any options, linux.mit.edu (Linerva) is a good choice.
+ 2.  ssh to that machine.
+ 3.  run {{{screen}}}
+ 4.  Do stuff.
+
+To detach, type "C-a d".  To reattach, type {{{screen -dr}}}
+
+If you close your ssh connection without detaching, or lose your network connection.
+
+ 1.  run {{{screen -dr}}}
+ 2.  Do stuff.
+
+The {{{-dr}}} means "find my screen session, detach it from wherever it's attached if it's attached, and reattach it here."
+
+Once you're comfortable with this, hit "C-a C-c".  This creates what screen calls a new "window"; it should give you a new shell prompt,
+and you can do stuff at it.  If you want to switch back to the old "window", hit "C-a C-a".   You can create as many "windows" as you want;  you can
+switch to the first 10 of them with "C-a 0" through "C-a 9" and see a list of what's open with "C-a w".  ("C-a C-a" actually means "switch to the previously
+used window".)
+
+A useful shorthand: {{{screen -dR}}} is like {{{screen -dr}}} except it adds a "if I don't already have a session, create one" step.
+
+You can use {{{screen -x}}} to attach a screen session that's already attached somewhere without detaching it first.  This can
+have side effects if the other place is already attached or is in a window that is a different size than your current one.
+It's useful when you want to share context between different screens, or even different people, but doing it when you're not
+sure where else your screen might be attached has privacy implications.
+
+== For More Information ==
+
+{{{screen}}} can do lots of stuff.   If you have a while to burn, run {{{man screen}}} at the shell prompt.   It may be helpful to do this inside of screen
+so you can put it down and come back to it later.
+
+=== TODO ===
+
+clean up, explain the "C-a C-a" notation.
\ No newline at end of file
diff --git a/doc/UsingZephyr b/doc/UsingZephyr
new file mode 100644 (file)
index 0000000..00885bf
--- /dev/null
@@ -0,0 +1,209 @@
+= Using Zephyr (a.k.a. Zephyr For Dummies) =
+
+For information on the archaic way of using Zephyr, see TraditionalZephyr.
+
+== Introduction to Zephyr ==
+
+Zephyr was a system designed to let system administrators send important messages to users in an easily noticeable format. It was meant to have a low volume of traffic and be used only for official notices. This is obviously not what Zephyr is today. It can still be used in the way it was intended: notice that you get official zephyrgrams as you log in, with important information about Athena services and planned outages. However, the most common usage is by average users exchanging information about classes, how their days are going, and talking on Zephyr classes and instances about everything from the latest episode of Battlestar Galactica to the next 18.03 problem set. The usage of Zephyr has far exceeded original expectations. Over time, people have also created programs that give Zephyr a graphical interface, and programs that give zephyr a purely textual interface, that can be used entirely within a ssh terminal. Some of these zephyr clients have become so widely used that there are users who do not know that there are other ways to send (and receive) zephyrgrams. This wiki will cover the traditional commands, typed at the athena% prompt, as well as the more common modern zephyr client Barnowl.
+
+The information in this wiki about Barnowl just barely touches the surface.  More for in-depth functionality, visit the Barnowl wiki at https://barnowl.scripts.mit.edu:444/wiki.
+
+== Modern Zephyr ==
+
+Today the majority of Zephyr users use the barnowl client.  There are other clients as well (for example, Pidgin supports Zephyr).  The following sections will go into detail about how to install, use, and customize barnowl.
+
+=== Other Clients ===
+
+There are other clients besides Barnowl, however their use is not nearly as widespread.  Some of these include:
+
+* Owl (unmaintained, Barnowl evolved from this)[[BR]]
+* vt / jervt[[BR]]
+* zwgc (see TraditionalZephyr)[[BR]]
+* Pidgin[[BR]]
+* zephyr-mode for emacs[[BR]]
+
+Using Barnowl is recommended, as it is better supported and more documentation exists for it.
+
+=== Using Barnowl ===
+
+To start barnowl, run the command {{{add barnowl; barnowl}}} at the prompt on any Athena machine or dialup, such as linerva.mit.edu.
+
+The simplest use of Zephyr is to send personal zephyrs to other users. To send a zephyr, type : to bring up a command line, and run the command {{{zwrite USERNAME}}}. You can also start a {{{zwrite}}} command by simply typing z.
+
+You can then enter your message, and then enter a {{{.}}} on a line by itself to finish the zephyr. By convention, zephyrs are usually word-wrapped to 70-character lines or so; Pressing M-q (Alt-q, or Escape then q) will word-wrap the text you've entered for you.
+
+Once you've sent and received zephyrs, you can navigate the message list with the arrow keys. Press {{{d}}} to mark a message as deleted, {{{u}}} to undelete it, and {{{x}}} to expunge all messages that have been marked as deleted.
+
+Instead of entering a {{{zwrite}}} command manually, you can also select a message in the message list with the arrow keys, and reply to it using {{{r}}}, which will automatically set up an appropriate {{{zwrite}}} command.
+
+For more documentation on the built-in commands and keybindings, you can press h to bring up barnowl's built-in help screen. For help with a specific command, bring up a command line with {{{:}}} and then type {{{help COMMAND}}}.
+
+=== Classes and Instances ===
+
+Generally the most interesting discussion on Zephyr, however, happens on so-called Zephyr ''classes''. A class is a bit like a chat room in other IM systems. Anyone can send a zephyr to a class, and anyone who is subscribed to that class will receive it. There is no security on classes -- anyone who knows the name of a class can subscribe, and there is no way to determine who is subscribed to a given class.
+
+To subscribe to a class, use the subscribe command:
+
+{{{
+:subscribe CLASSNAME * *
+}}}
+
+To send a zephyr to a class, use the zwrite command with the -c option:
+
+{{{
+:zwrite -c CLASSNAME
+}}}
+
+Zephyrs to classes usually have an instance attached. An instance is a short \93topic\94 or \93subject\94 that indicates the context of a zephyr. Different instances are often used to multiplex multiple conversations on a high-traffic class. You can specify an instance with the -i option to zwrite:
+
+{{{
+:zwrite -c CLASSNAME -i INSTANCE
+}}}
+
+A message without an instance specified will default to the instance \93personal\94
+
+Some common classes include:
+
+'''help'''::
+ -c help is a class for asking (and answering) questions on virtually any topic imaginable. Be sure to use an instance (such as \93linux\94\93barnowl\94\93campus\94, or so on) when asking questions, since it's a fairly high-traffic class. 
+
+'''sipb'''::
+ -c sipb is where most SIPB members hang out. It's a place for technical discussion, questions, support, and organizing SIPB events or projects. You should also always use an instance when sending to -c sipb. 
+
+'''Personal Classes'''::
+ By convention, nearly every Zephyr user has a "personal" class that is the same as their username. How this class is used varies from person to person, but it's often a sort of mini-blog, a place to report what one is working on or up to, or ask friends questions, or just rant about something.
+
+'''"un" Classes'''::
+ Many people use "un" classes in addition to their personal class, for example {{{johndoe}}} might use {{{-c unjohndoe}}}.  Sometimes there are nested un-classes as well, such as {{{-c ununjohndoe}}} or {{{-c unununjohndoe}}}.  It is extremely rare to see anything more than three "un"s.  Un-classes are generally used for snarking about a conversation going on in the next class up ({{{-c unjohndoe}}} snarking about {{{-c johndoe}}}), or for more intense ranting.  The more "un"s, the more intense the snarking/ranting generally becomes.
+
+=== Zephyr Slang ===
+
+If you spend enough time on Zephyr, you'll begin noticing some strange phrases and words being thrown around.  Some of these include:
+
+'''i,i foo''':  picked up from CMU zephyrland and means "I have no point here, I just like saying:".  Sometimes people simply use quotes: {{{"foo"}}}.
+
+'''mix''':  If somebody accidentally sends a Zephyr to the wrong class or person, they will send another Zephyr to that wrong/class person simply saying "mix".  This basically just means, "oops, sorry, I didn't mean to send that Zephyr here".  You might also see "-i mix", which is the same thing, only with instances.
+
+'''.d''':  You may see an instance change from {{{-i foo}}} to {{{-i foo.d}}}.  This indicates a deviation or tangent from the the original topic.
+
+'''starking''': Answering a question or replying to a topic to a topic several hours (or days, occasionally) later. The term originates from Greg Stark, who would often reply to zephyrs hours or occasionally days later without seeing if anyone had answered yet, or worse, if the instance had moved on to an entirely different topic.
+
+'''ttants''':  Literally, "Things That Are Not The Same".
+
+'''prnf''':  Literally, "Pseudo-Random Neuron Firings".
+
+There are many other acronyms that are used; if you don't know what it means, try using the {{{whats foo}}} command at an Athena terminal. If you don't have the command, run {{{add sipb}}} first.
+
+=== Startup ===
+
+There might be some options that you want to be consistent from session to session; you don't want to have to set the same variables each time.  You can fix this by adding the commands to your "startup" file, for example, {{{.owl/startup}}}.  This can be done from within Barnowl, by using the {{{startup}}} command:
+
+{{{
+:startup set foo bar
+}}}
+
+Where {{{foo}}} is the variable you want to set, and {{{bar}}} is the value.  You do not necessarily have to use the {{{set}}} command, either, any command you can type in Barnowl can be added to the startup file.
+
+=== Logging ===
+
+It is handy to be able to log your conversations so you can refer back to them later.  To log classes, for example:
+
+{{{
+:set classlogging on
+}}}
+
+And to log personals:
+
+{{{
+:set logging on
+}}}
+
+This will log to the "zlog" directory in your locker. You probably don't want people to see what classes you're on or what people you talk to, so you can run the Athena command
+
+{{{
+mkdir -p ~/zlog
+fs sa ~/zlog system:anyuser none
+}}}
+
+to make this directory completely hidden.
+
+=== Colors ===
+
+By default, there are seven colors you may use in the terminal:  red, green, yellow, blue, magenta, cyan, and white.  In order to use color in Zephyr, you can use the following notation:  {{{@(@color(red)This is some red text))}}}
+
+Colors may vary from machine to machine, as different terminal profiles may have different shades of the seven colors.
+
+=== Filters ===
+
+Some people like to customize their Barnowl by color-coding classes.  This makes it easier to tell different classes apart (and minimize mixing).  Barnowl has some already existing filters, for example, {{{personal}}} (for incoming personals), {{{out}}} (for outgoing personals), and {{{ping}}} (for pings).  To assign a color to a filter, add the following to your startup file:
+
+{{{
+filter personal -c green
+}}}
+
+What if you want to color-code your class, or a friends class?  You can create and color filters with:
+
+{{{
+filter johndoe class johndoe
+filter johndoe -c blue
+}}}
+
+You can update your settings and filters without restarting your Barnowl session by:
+
+{{{
+:source ~/path/to/config/file
+}}}
+
+You can see all the filters by using {{{:show filters}}}, and narrow to a particular filter with, e.g., {{{:view personal}}}. You can use {{{:view all}}} or the keyboard shortcut {{{V}}} to see all messages again.
+
+For more detailed information on filters, visit https://barnowl.scripts.mit.edu:444/wiki/Filters.
+
+== Running Barnowl in Screen ==
+
+It can be very annoying to have to close Barnowl when you turn off your computer.  During the time your computer is off, you're missing many (possibly important) zephyrs.  It can be aggravating to be using zephyr via an unreliable network connection.  It can also be frustrating if you leave your computer on with Zephyr up, but go to a different computer and want to check your zephyrs - how do you do this?  These problems can be solved with the magic of screen.
+
+A more detailed and extensive explanation of this can be found at http://web.mit.edu/kchen/bin/owl-screen.txt.
+
+=== Screen ===
+
+You should find a computer or server on which to run your screen session(s) that is up all the time, for example, linerva.mit.edu.  Screen allows you to run programs inside of it on one computer, and to access those same programs from other computers via ssh.
+
+=== Quickstart ===
+
+1.  Pick a machine to host your screen session on.  If you don't know of any options, linux.mit.edu (Linerva) is a good choice.
+2.  ssh to that machine.
+3.  Run "add kchen".  You may want to add this to your {{{~/.environment}}} file.
+4.  Run "owl-screen"
+
+Your screen session is now ready.  Once you start the screen session, you'll need to get renewable Kerberos tickets in order to run it for any extended period of time.  Press C-a C-c to open a new screen window, and run
+
+{{{
+kinit -l7d -54
+}}}
+
+(length 7 days, both Kerberos 5 and Kerberos 4). Press C-a 0 to return back to your Barnowl window.
+
+When you're ready to log out, press C-a d to "detach" your screen, and then type {{{exit}}} or {{{logout}}} to log out.  Later, when you want to "reattach" your screen, ssh to the machine again, and run {{{screen -r}}}.
+
+=== Kerberos Tickets and AFS Tokens ===
+
+In order to keep your screen session authenticated, you'll need to keep your Kerberos tickets and AFS tokens up-to-date.  There is a script that will do this for you, located in the {{{kchen}}} locker.  After you ssh into the machine that hosts your screen sessions, run the following commands:
+
+{{{
+add kchen
+owl-screen
+C-a C-c
+kinit -l1d -r7d -54
+}}}
+
+=== Attaching and Detaching Sessions ===
+
+To detach a screen session (for example, if you want to log out), press C-a d (Control-A, then D).  Screen continues to run, but is no longer active.
+
+To reattach a screen session, possibly detaching from wherever it's currently attached, run:
+
+{{{
+screen -dr
+}}}
+
+{{{screen}}} can do a whole lot more.   To find out about it, see UsingScreen.
\ No newline at end of file
diff --git a/doc/WikiStart b/doc/WikiStart
new file mode 100644 (file)
index 0000000..057d96d
--- /dev/null
@@ -0,0 +1,67 @@
+= Welcome to the SIPB Documentation Project =
+
+The SIPB Documentation Project is a project to document in written
+form the collective knowledge that SIPB members take for granted or
+use in maintaining services and projects that are not otherwise
+written down anywhere.
+
+See '''ProjectIdeas''' for stuff to try doing to further the goals of the SIPB.
+
+See LennyBugs and LennyBugsAll for the bugs we took on in the Lenny
+RC-bug-squashing hackathon of December 13, 2008.
+
+== Documentation Topics ==
+
+ * UsingZephyr -- An attempt at a complete beginner's guide to getting
+   on Zephyr with BarnOwl and [UsingScreen screen].
+  * BarnOwl has some more documentation on [http://barnowl.mit.edu/ its wiki]
+ * [wiki:AFSAndYou] -- an attempt at beginners guide to working with AFS for Athena and Web 
+ * UsingScreen -- Handy for [UsingZephyr Zephyr] and anything else you do in an ssh session.
+ * [wiki:XVM] (On XVM's trac)
+  * [https://xvm.mit.edu/trac/wiki/Remctl using `remctl`]
+  * [https://xvm.mit.edu/trac/wiki/SerialConsole getting the serial console]
+ * printing: QuickPrint, CupsOnMac
+ * KerberizedServer explains keytabs and how to get one and how that lets you SSH somewhere with Kerberos.
+ * RootInstance explains root and extra instances in Kerberos.
+ * SummerReading -- Documents or books that various SIPB members recommend reading.
+
+== Documentation Ideas ==
+
+This is a list of topics that need documentation in one form or
+another or that are good for explaining to prospectives.
+
+ * PrintingAtMit
+   * QuickPrint -- done!
+   * `lpq`, `lprm`, `queues.mit.edu`
+   * printing from non-Athena: CupsOnMac -- done!
+   * `-i printadm` (maybe)
+
+ * [wiki:Debianization] -- packaging software for Debian and Ubuntu
+ * UsingDebathena -- You've installed Debathena -- now what?  Automounter, `blanche`, cups; using stuff in the GUI.
+ * AthenaDotFiles -- These are weird and nonstandard compared to traditional UNIX and should be documented, including things like `.environment`
+   * There's some documentation at [http://web.mit.edu/olh/Dotfiles/]
+
+ * ScriptsMitEdu -- lots of neat internals to explain
+
+  -- There should be a central documentation point to using your AFS space, granting access through AFS and through `web`, accessing files from various platforms, and so on.  Don't duplicate iAFS; perhaps latex2html and update it.
+
+ Setting up servers:
+ * ClientCerts should explain, if for some perverse reason you don't want to use scripts.mit.edu :-), how to set up client cert authentication on your own machine (grab the CA out of the apache-ssl locker, submit a CSR to mitcert@, set up scripts' magic Apache modules to make your life easier)
+
+ * Add your own here!
+
+== Useful Links ==
+
+ * WikiFormatting -- Documentation on trac's Wiki formatting language
+ * SIPB's [http://stuff.mit.edu/sipb/docs.html Inessential Guides]. A previous generation of SIPB documentation. Much of it is dated, but still contains useful knowledge that should be updated or moved here.
+ * SIPB services and projects list: http://stuff.mit.edu/sipb/project-list.html
+
+=== License ===
+
+Unless specified otherwise, all content on this wiki is released under a dual license of
+
+ * the Creative Commons Attribution-Share Alike license, and
+ * the GNU Free Documentation License, with no Invariant Sections, no
+   Front-Cover Texts, and no Back-Cover-Texts.
+
+This follows the [http://stuff.mit.edu/afs/sipb/admin/text/policy/documentation_licensing.txt SIPB Documentation Licensing Recommendation].