Diff for /loncom/build/readme.html between versions 1.20 and 1.24

version 1.20, 2002/08/14 17:07:19 version 1.24, 2011/03/01 03:43:32
Line 2 Line 2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!-- The LearningOnline Network with CAPA -->  <!-- The LearningOnline Network with CAPA -->
 <!-- $Id$ -->  <!-- $Id$ -->
 <html>  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>  <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
 <meta name="GENERATOR"  
       content="Scott Harrison and Emacs Version 3.14159265358979"></meta>  
 <title>LON-CAPA Software Developer Guide</title>  <title>LON-CAPA Software Developer Guide</title>
 </head>  </head>
 <body>  <body>
 <h1>LON-CAPA Software Developer Guide</h1>  <h1>LON-CAPA Software Developer Guide</h1>
 <p>  <p>
 <br /><i>Written by Scott,<br />  Created: <i>January 17, 2001</i>
 <a href="mailto:sharrison@users.sourceforge.net">  <br />Last updated: <i>February 28, 2011</i>
 sharrison@users.sourceforge.net</a>,<br />  
 January 17, 2001</i>  
 <br /><i>Last updated, August 14, 2002</i>  
 </p>  </p>
 <ol>  <ol>
 <li><a href="#Using_CVS">Using CVS</a>  <li><a href="#Using_CVS">Using CVS</a>
 <ul>  <ul>
 <li><a href="#cvslog">Logging in and out (cvs login; cvs logout)</a></li>  <li><a href="#cvslog">Setting up cvs access</a></li>
 <li><a href="#cvsupdate">Updating files (cvs update -d)</a></li>  <li><a href="#cvsupdate">Updating files (cvs update -d)</a></li>
 <li><a href="#cvssave">Saving files (cvs commit)</a></li>  <li><a href="#cvssave">Saving files (cvs commit)</a></li>
 <li><a href="#cvsadd">Adding files (cvs add)</a></li>  <li><a href="#cvsadd">Adding files (cvs add)</a></li>
Line 33  January 17, 2001</i> Line 28  January 17, 2001</i>
 <li><a href="#makebuild">Compiling the software (make build)</a></li>  <li><a href="#makebuild">Compiling the software (make build)</a></li>
 <li><a href="#loncapafiles">Adding/removing files from the LON-CAPA  <li><a href="#loncapafiles">Adding/removing files from the LON-CAPA
 installation (doc/loncapafiles/loncapafiles.lpml)</a></li>  installation (doc/loncapafiles/loncapafiles.lpml)</a></li>
   <li><a href="#makeaboutVERSION">Updating the LON-CAPA Version number</a></li>
 <li><a href="#configversusnonconfig">Configurable files versus  <li><a href="#configversusnonconfig">Configurable files versus
 non-configurable files</a></li>  non-configurable files</a></li>
 <li><a href="#makeinstall">Updating the non-configurable files on your  <li><a href="#makeinstall">Updating the non-configurable files on your
Line 49  These instructions assume that you are u Line 45  These instructions assume that you are u
 terminal.  terminal.
 <ul>  <ul>
 <li><a name="cvslog" />  <li><a name="cvslog" />
     <h3>Using CVS: Logging in and out (cvs login; cvs logout)</h3>      <h3>Setting up cvs access</h3>
 <p>  <p>
 In order to log into CVS, CVS needs to be part of your system environment.  CVS needs to be part of your system environment in order to access the LON-CAPA CVS repository, 
 You can do this by:  You can do this by:
 </p>  </p>
 <p>  <p>
 <font color="#008800">  <font color="#008800">
 <tt>export CVSROOT=:pserver:USERNAME@install.lon-capa.org:/home/cvs</tt>  <tt>export CVS_RSH=ssh</tt><br />
   <tt>export CVSROOT=:ext:USERNAME@source.lon-capa.org:/home/cvs</tt>
 </font>  </font>
 </p>  </p>
 <p>  <br />
 To actually login, you will need to execute the following command:  To actually issue CVS commands you will need to: 
 </p>  <br /><br />
 <p>  <ol>
 <font color="#008800">  <li>Have installed the CVS client, e.g., <font color="#008800"><tt>yum install cvs</tt></font></li>
 <tt>cvs login</tt>  <li>Have been issued a CVS account, (send a request to the <a href="mailto:helpdesk@loncapa.org">LON-CAPA helpdesk</a>)</li>
 </font>  <li>Have generated public and private keys via <font color="#008800"><tt>ssh-keygen -t dsa</tt></font> and sent the public key to the LON-CAPA helpdesk for installation on the CVS server.</li>
 </p>  </ol>
 <p>  
 You are then prompted for a password.  
 If you do not have a password, or the password is not working, you  
 should contact <a href="mailto:helen@lon-capa.org">helen@lon-capa.org</a>.  
 </p>  
 <p>  <p>
 The first time you use CVS, you need to CHECKOUT the repository.  The first time you use CVS, you need to CHECKOUT the repository.
 Generally speaking, you need to checkout <tt>loncapa</tt> only once  Generally speaking, you need to checkout <tt>loncapa</tt> only once
Line 85  To check-out the repository, use the <tt Line 77  To check-out the repository, use the <tt
 <tt>cd loncapa</tt>  <tt>cd loncapa</tt>
 </font>  </font>
 </p>  </p>
 <p>After completing work with the CVS repository,  
 you can log out:  
 </p>  
 <p>  
 <font color="#008800">  
 <tt>cvs logout</tt>  
 </font>  
 </p>  
 </li>  </li>
 <li><a name="cvsupdate" />  <li><a name="cvsupdate" />
     <h3>Using CVS: Updating files (cvs update -d)</h3>      <h3>Using CVS: Updating files (cvs update -d)</h3>
Line 201  cvs commit FILENAME Line 185  cvs commit FILENAME
 Note that CVS typically invokes the  Note that CVS typically invokes the
 <a href="http://www.eng.hawaii.edu/Tutor/vi.html">vi</a> editor and solicits  <a href="http://www.eng.hawaii.edu/Tutor/vi.html">vi</a> editor and solicits
 comments about your latest changes to the software.   Your comments should be  comments about your latest changes to the software.   Your comments should be
 both short yet uniquely descriptive.  For example:  descriptive and informative.  For example:
 </p>  </p>
 <ul>  <ul>
 <li><strong>BAD</strong> - "made some changes and am drinking soda"</li>  <li><strong>BAD</strong> - "saving my work"</li>
 <li><strong>GOOD</strong> - "implemented syntax checking of perl scripts  <li><strong>GOOD</strong> - "implemented syntax checking of perl scripts
 with -c flag"</li>  with -c flag"</li>
 </ul>  </ul>
Line 484  well. Line 468  well.
 The <tt>lpml_parse.pl</tt>-<tt>loncapafiles.lpml</tt>   The <tt>lpml_parse.pl</tt>-<tt>loncapafiles.lpml</tt> 
 combination has been highly efficient and error-free.  combination has been highly efficient and error-free.
 </p>  </p>
 </li><li><a name="configversusnonconfig" />  </li>
   <li><a name="makeaboutVERSION" />
       <h2>Updating files containing version number on your machine (make aboutVERSION)</h2>
   <strong>Commands</strong>
   <p><font color="#008800"><tt>
   cd loncom/build
   <br />make aboutVERSION
   </tt></font></p>
   <p>
   <strong>General description of what happens</strong>
   </p>
   <p>
   This is the actual make target code.
   </p>
   <pre>
   <!-- LONCAPA MAKETARGET=aboutVERSION START -->
   aboutVERSION:
           cat $(SOURCE)/loncom/license/about.html | \
           perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \
           $(SOURCE)/loncom/license/about.html.new
           mv -v $(SOURCE)/loncom/license/about.html.new \
           $(SOURCE)/loncom/license/about.html
           cat $(SOURCE)/loncom/loncapa_apache.conf | \
           perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \
           $(SOURCE)/loncom/loncapa_apache.conf.new
           mv -v $(SOURCE)/loncom/loncapa_apache.conf.new \
           $(SOURCE)/loncom/loncapa_apache.conf
   <!-- LONCAPA MAKETARGET=aboutVERSION END -->
   </pre>
   <p>
   The LON-CAPA Version number is updated in the following files:
   <ul>
   <li><tt>loncom/license/about.html</tt></li>
   <li><tt>loncom/loncapa_apache.conf</tt></li>
   </ul>
   </p>
   <p>
   Updating the version information in these files means that visitors to the static HTML page: "About LON-CAPA" on your server will see which version of LON-CAPA you are running.  The same information is also displayed on the dynamic log-in page generated by <tt>lonlogin.pm</tt>.  Furthermore, the version of LON-CAPA running on your server can determine which course roles may be selectable on that server, if a course contains resource(s) and/or parameter(s) which require a specific version (or newer) of LON-CAPA.  It is also possible for Domain Coordinators in another domain to configure their domain to limit hosting of sessions for users from their own domain to LON-CAPA servers in other domains which are running a specific LON-CAPA version (or newer).
   </p>
   <p> On a development server, i.e., one where LON-CAPA is built and installed from a CVS checkout, running make aboutVERSION will cause the version number to be set to something of the form: M.N.CVS_HEAD-YYYYMMDDHH, where M.N will be the version number of the next stable (major) release (e.g., if the current stable release is 3.1; the next release would be 3.2), and YYYYMMDDHH is the datestamp when make aboutVERSION was last run.  Note: make aboutVERSION will update the about.html and loncapa_apache.conf in the installation directory tree; it is not until <tt>make install</tt> is run that files served directly by the web server (or used for configuration) are updated with the versions in that tree.
   </p>
   </li>
   <li><a name="configversusnonconfig" />
     <h2>Configurable files versus non-configurable files</h2>      <h2>Configurable files versus non-configurable files</h2>
 <p>  <p>
 <strong>Machine-specific information is the difference</strong>  <strong>Machine-specific information is the difference</strong>
Line 659  RPM: BinaryRoot base_rpm_file_list Line 685  RPM: BinaryRoot base_rpm_file_list
  cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \   perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \
  > base_customizerpm.xml   > base_customizerpm.xml
  cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 '' '' \   cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 1 '' '' \
  BinaryRoot base_customizerpm.xml   BinaryRoot base_customizerpm.xml
   
 BinaryRoot: base_rpm_file_list  BinaryRoot: base_rpm_file_list
Line 683  occur on the '/' filesystem location. Line 709  occur on the '/' filesystem location.
 span of months) and, unlike other automated RPM-builders, cleanly  span of months) and, unlike other automated RPM-builders, cleanly
 builds new RPMs without any after-effect of temporary files left  builds new RPMs without any after-effect of temporary files left
 on the system.  The generated RPM is labeled in the format  on the system.  The generated RPM is labeled in the format
 LON-CAPA-base-(VERSION)-1.i386.  VERSION is specified inside the  LON-CAPA-base-(VERSION)-(RELEASE).i386.  VERSION is specified inside the
 Makefile.  Makefile.
 </p>  </p>
 </li>  </li>

Removed from v.1.20  
changed lines
  Added in v.1.24


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>