Difference between revisions of "COMP 3000 Lab 5 2012"

From Soma-notes
Jump to navigation Jump to search
Line 28: Line 28:
Create a new netcat-traditional binary package (using the source package) with the following attributes:
Create a new netcat-traditional binary package (using the source package) with the following attributes:


* Make the name of the package netcat-comp3000 instead of netcat-traditional by editing debian/control and other files as necessary.  Be sure to make yourself the maintainer and uploader, using your Carleton email address.
* The version should be set to 1.10-39comp3000 by editing the debian/changelog.  Urgency should be low, version should be unstable.  Only change is "* COMP 3000 Assignment".  The timestamp should be when you make the change, and the maintainer should be you, giving your Carleton email address.  (Note: emacs has a changelog mode!)
* The version should be set to 1.10-39comp3000 by editing the debian/changelog.  Urgency should be low, version should be unstable.  Only change is "* COMP 3000 Assignment".  The timestamp should be when you make the change, and the maintainer should be you, giving your Carleton email address.  (Note: emacs has a changelog mode!)
* Make the binary installed nc.comp3000, not nc.traditional (start by editing the debian/rules file).
* Make the binary installed nc.comp3000, not nc.traditional (start by editing the debian/rules file).
* Make <tt>nc.comp3000 -h</tt> return the normal help message, appended with the line "Version for COMP 3000.  Prepared by Jane Smith."  Substitute your name for Jane Smith.
* Make <tt>nc.comp3000 -h</tt> return the normal help message, appended with the line "Version for COMP 3000.  Prepared by Jane Smith."  Substitute your name for Jane Smith.
* Have the package install an upstart script that spawns bc on port 4000.  Use the getty startup scripts (tty?.conf) as a model.  You should need four lines of actual statements to make it work, perhaps less.  Note that bc should always be running, even after someone has connected and exited.
* Have the package install an upstart script that spawns bc on port 4000.  Use the getty startup scripts (tty?.conf) as a model.  You should need four lines of actual statements to make it work, perhaps less.  Note that bc should always be running, even after someone has connected and exited.
 
* BONUS: Add a file /etc/default/nc.comp3000 that allows you to change the program that is spawned and the port being listened to by the instance started by upstart.  The installed version of this file should default to the same command and port as before.
 
Outline for lab
* install netcat deb, binary package, run it, examine contents
* examine source package, modify, build binary package
* look at default configuration, work with debconf
* make netcat-based server that is started at boot time: server should print seconds since boot and student name?

Revision as of 07:28, 29 October 2012

THIS LAB IS STILL UNDER CONSTRUCTION

In this lab you will be creating a new package for ubuntu called netcat-comp3000, based on the netcat-traditional package. We will be grading the .deb file you create using scripts, so be sure to follow the directions below carefully!

(Note that there exist other netcat packages, such as netcat-openbsd. Please use netcat-traditional for this lab!)

You will submit a file netcat-comp3000_1.10-39comp3000_amd64.deb or netcat-comp3000_1.10-39comp3000_i386.deb, depending on whether you are running a 64 or 32-bit version of Ubuntu 12.04. The answers to Part A should appear in a file /usr/share/doc/netcat-comp3000/PART-A when the package is installed, with each answer appearing on one line, and with the very first answer appearing on the very first line of the file. This file MUST be a UNIX next file (delimited by LF)!

If you do not manage to finish Part B, just submit this answers file for partial credit.

Part A

Note the answers for this part go in a file PART-A, with each answer on a line by itself, starting with the first line. There should be no line numbers; just the commands that are asked for. Expect these answers to be graded automatically!

  1. Install the netcat-traditional package. Give the exact apt-get command you used to install it.
  2. Give the command to make netcat (nc) listen on port 4000 for incoming connections and execute /usr/bin/bc on every connection. (Note it will be difficult to do this if you use the netcat-openbsd package.)
  3. Give the command needed to have netcat connect to the server you created in the previous question. Connect from the same machine, i.e., use "localhost" as the host. You can terminate a connection by typing Ctrl-D.
  4. Give the command line needed to extract the contents of the netcat-traditional package you installed into the directory CONTENTS, using the dpkg-deb command.
  5. Give the command line needed to extract the control files of the netcat-traditional package you installed into the directory CONTROL, using the dpkg-deb command.
  6. Install the dpkg-dev package. Give the exact apt-get command you used to install it.
  7. Install the fakeroot package. Give the exact apt-get command you used to install it.
  8. Install the quilt package. Give the exact apt-get command you used to install it.
  9. Download the unpacked source for netcat-traditional. Give the exact apt-get command you used to download the source.
  10. Give the command line needed to build the source package you downloaded, using dpkg-buildpackage and fakeroot, only building the binary packages.

Part B

Create a new netcat-traditional binary package (using the source package) with the following attributes:

  • Make the name of the package netcat-comp3000 instead of netcat-traditional by editing debian/control and other files as necessary. Be sure to make yourself the maintainer and uploader, using your Carleton email address.
  • The version should be set to 1.10-39comp3000 by editing the debian/changelog. Urgency should be low, version should be unstable. Only change is "* COMP 3000 Assignment". The timestamp should be when you make the change, and the maintainer should be you, giving your Carleton email address. (Note: emacs has a changelog mode!)
  • Make the binary installed nc.comp3000, not nc.traditional (start by editing the debian/rules file).
  • Make nc.comp3000 -h return the normal help message, appended with the line "Version for COMP 3000. Prepared by Jane Smith." Substitute your name for Jane Smith.
  • Have the package install an upstart script that spawns bc on port 4000. Use the getty startup scripts (tty?.conf) as a model. You should need four lines of actual statements to make it work, perhaps less. Note that bc should always be running, even after someone has connected and exited.
  • BONUS: Add a file /etc/default/nc.comp3000 that allows you to change the program that is spawned and the port being listened to by the instance started by upstart. The installed version of this file should default to the same command and port as before.