New Testing Version 2.11.0.RC3 Released

This version is currently installed on production servers at MSU.
I expect to release this as the 2.11.0 final release within a few days.

Changes from 2.10.1

General user interface
- "Functions" menu for Roles/Courses screen has icons/links for some or all of: 
    Check for changes, Hotlist, Request course, Show queued, Include expired, Course catalog, 
    - which are shown depends on number of roles user has and user's rights in the system. 
- Inline menu changes:
  - Course context has new items for Grades, People, Settings, Public (or Syllabus and Feeds) 
    - Grades, People, Settings and Public (course personnel) have drop-down menus.
    - "Return to Last Location" link is now icon instead of text.
- Course Contents screen includes "Main Content", "Supplemental Content", "Content Search" tabs.
- Users with advanced privileges (i.e., authoring or coordinator) have access to "Stored Links"
  utility which allows saving (and management) of links to content in shared resource pool 
  (also available when user is browsing a colleague's course, with an assigned student role).
- Countdown timer available for items with either a due date set, or the interval parameter set
  (timer displayed automatically for a timed quiz),
- "Set my preferences" - jPicker used for color preferences.
- New standard element -- "action box" used to offer contextual actions at the bottom of a page.
- Messages/communication page design and usability improved.
- Critical messages now displayed in reverse chronological order, by default.
- "Edit" link/icon included in "Functions" menu for users with privileges to edit current content is
  standardized to support more pages including templated pages ("About Me", Syllabus, Bulletin Board,
  Simple Page), Student-viewable roster, uploaded html file, and "External Resource".
- Supplemental Content display uses breadcrumbs for nested folders so users can navigate to higher 
  level folders.
- Self-creation of a user account with e-mail address as username now uses a single web form to
  request e-mail address, password and user information (fields can be required or optional).
- Browser detection used to identify when mobile device (e.g., iPhone, iPad etc.) is in use to support:
  - improved handling of scrolling and pop-up help.
  - different display mode for PDFs.
  - suppress autocapitalization and autocorrection of text entered in username or domain fields on
    log-in page.
- Pop-up windows are now modal windows (page behind pop-up still viewable) in a number of contexts
  (e.g., contextual help, previous tries).
- Previous tries screens include encoding of HTML Entities when displaying past submissions. 
- Upload of files to dropbox/essay assignments allows overwriting of file with same name/location in 
  user's portfolio (user will be prompted to allow it).
- Student's display of currently submitted files for dropboxes:
  - Show/Hide link toggles display of path for items uploaded from portfolio; default: only file name.
- Time/date of each submission shown in display of student's previous tries.
- In a non-anonymous discussion post, username:domain is only appended to a poster's nickname if
  viewer is one of the course personnel.
- Improved Progress indicator -- uses jQuery.
- Additional math renderer: MathJax
- For servers running Apache/SSL rewrite rules updated to ensure requests for syllabus page (could
  included iframe loading external site) and also external resources where external site is served
  by http) are served by http to avoid default blocking by some browsers because of "mixed active 
  content". 

Domain Management
- Configuration of self-creation of accounts has more options:
  - e-mail address as username:
   - choice of (original) CAPTCHA or newer reCAPTCHA, or no CAPTCHA on form used to request account.
   - can specify which user information fields are required, optional, or are omitted.
   - requests can be queued for approval, or created automatically, and processing can be set to 
     be based on self-reported status (e.g., instructor or student).
  - Shibboleth authenticated SSO username
    - environment variables provided by Shibboleth can be set to provide data for specified
      user information fields.
- Configuraton of self-enrollment in a course has more options:
   - configuration rights for self-enrollment can be assigned (by field) to course personnel or to 
     Domain Coordinators (domain defaults can be overridden for individual courses).
   - self-enrollment requests can be queued, pending validation.
   - self-enrollment validation can be via an external validation server/script (e.g., for e-commerce).
- Configuration of course creation requests has more options:
   - a new container type - "textbook" provides a simplified (single page) course request form. Options
     include cloning from a set of pre-fabricated textbook courses or template courses.
   - a unique six character code can be generated at course creation time for use by self-enrolling 
     students, to search the catalog for the course.
   - Details of pre-fabricated courses: "textbooks" and "templates" for cloning when creating a new "textbook"
     course can be uploaded (subject, title, image, author, publisher, and LON-CAPA course domain/ID.
   - Validation of requests now available as an option for all course container types.
   - Validation of unofficial and textbook courses, and communities can be via a validating server/script.
     Form fields to send to validator can be specified.
   - Customization of course request handling supported by customization of new subroutine:
     &crsreq_updates() in localenroll.pm
- Configuration of course catalog has more options:
   - Type of catalog displayed can be one of: standard (i.e., original catalog), domain-only (i.e.,
     no selector to switch to differnt domain, code search form, i.e., form to search by six character
     code, or no catalog.
   - Type of catalog displayed can be set to be different for authenticated and unauthenticated users.
- More granular control is provided over what is shown in the Domain Coordinator Course Catalog view
  i.e., when "Show full details" is checked:
  - Totals can be displayed for unique courses, sections, counts for current, future, and past students.
  - Counts of "past" students can be based on: (a) default end access date, (b) auto-enrollment end date,
    or (c) active status on a specific date.
  - Totals can be included for student credit hours, if credits enabled for official or unofficial courses.
- Configuration of course/community defaults has more options
   - Default quotas can be set (by course type) for files uploaded directly to course via Course Editor.
   - Default credits can be set (by course type).
- Additional server status access pages: listing of course/community disk usage, listing of six character
     codes in use, results of checksum-based validation of installed LON-CAPA modules.
- Configuation permits users to request creation of an author role in their domain.
  - Requests can either be processed automatically, or queued for approval.
  - Defaults can be assigned based on institutional status, and can be overridden for individuals.
- Logging of role changes for domain roles and co-author roles (who, what, when, context, and by
  whom), with access to the appropriate log information via a submenu in "Modify users".
- Information to show when listing users in the domain, based on role, is selectable. Disk usage
  and disk quota are new options available when listing information about authors.
- Contact Helpdesk can be set to require CAPTCHA validation (default: is to not use).
- Display of the "Contact Helpdesk" link on log-in page can be disabled (default is to display).
- Link on log-in page to "log-in help" can point to custom log-in help page for user's domain
  (different log-in help files can be provided for different languages, and the file linked to 
  depends on user's browser language preferences).
- A web-based interface is available to manage load balancing on the domain's servers which supports 
  use of multiple dedicated load balancing servers in a particular domain.
  - Servers can be easily taken out/added to the balance pool to faciltate maintenance.
- The color chooser used for color selections in the domain configuration is jPicker.
- Fullname, username, and domain are shown in domain configuration where a DC needs to be selected
  (e.g., who to notify of authoring space or course requests needing approval).
- Utilities are available to checksum LON-CAPA modules to verify integrity of LON-CAPA installation,
  and also to check the availability of new LON-CAPA releases (recipients of nightly e-mail sent
  if module changes or LON-CAPA updates are detected can be set).
- Domain defaults can be specified for credits earned in a course for official or unofficial courses.
  - Course-specific credits can be specified when: (a) creating a single course, (b) in the XML in
    batch course creation, or (c) via "Modify course" after the course has been created.
  - Course credits for an official course can be specified or retrieved from customized localenroll.pm,
    and can be specified for an unofficial course as part of a course request.
- Institutional user types defined for a domain (e.g., Faculty, Staff and Student) can be set via the
  web-based domain configuration tool. Values set this way will supersede values for the domain from a
  customized inst_types() routine in localenroll.pm. Types can be applicable to self-created usernames
  (e-mail address as username) - self-reported in this case.
- Default disk quotas can be set for Authoring Spaces, based on user's affiliation (e.g., Faculty, Staff etc.)
- WebDAV access to Authoring Spaces can be enabled for users with author or co-author roles, based on user's
  affiliation, as long as log-in is supported via a non-SSO log-in, i.e., internal, local, or Kerberos.
- Configuration of Contact information has more options:
  - Set recipients of e-mail generated by a nightly check of LON-CAPA module integrity/updates.
  - Set recipients of e-mail generated by a bi-nightly check for multiple users sharing same student/employee ID. 
  - Error report e-mail generated when a user submits the error reporting form displayed in the case of an ISE
    (500 error) can be set to not be sent to the LON-CAPA developers (at MSU).
- Bubblesheet format file supports additional field (BubblesPerRow), which is number of bubbles available 
  in each row used to bubble an answer. (If not specified, 10 assumed).


Institutional integration
- Shibboleth authentication supported for Single Sign On (SSO).  
- Institutional status can be set when auto-enrollment adds a new LON-CAPA user.
- Credits for individual students can be retrieved from an institutional data source
  and stored in the LON-CAPA roster database file.


Course Management
- Edit Folder icon/link in Functions menu, when displaying a resource, and also icon alongside folder names
  in Course Contents provide direct access to the Course Editor for the specific folder.
- Syllabus and Feeds items included in inline menu for Course Coordinators.
  - other roles will also receive the Feeds item if there are any visible course RSS Feeds.
  - other roles will also receive the Syllabus item if the syllabus has been edited and is not
    included in the Main Content area.
- Two additional syllabus types available - uploaded file, and minimal template (single editable
  WYSIWYG text area).
- For standard template-based syllabus list of course personnel to display is configurable.
- "Edit" button for syllabus which provides direct access to configuration replaces access via:
  Course Configuration -> General course settings.
- "External Resources" can be edited directly from an "Edit" link (i.e., without entering the Course Editor). 
- Edit icon included in row of icons for each item in a composite page, if user has privileges to edit 
  the content item.
- Display of date/time of last "login" by user/role/section added to a Course's What's New screen and 
  also to "List Users" screen in the User Management menu (a "login" event is selection of a course role).
- Course Editor paste buffer improvements:
  - Main Content <-> Supplemental Content pasting within a course is now handled correctly.
  - Folders created via the Course Editor containing other folders can be cut/copied/pasted.
  - The paste buffer can be used to copy content (including entire folders) between courses.
  - If "cut" in current course was used to put content in the paste buffer, and content is an 
    uploaded folder/page, bulletin board or simple page, paste includes the options to either:
    (a) copy (i.e., make new item), or (b) "move", i.e, move as current item.
  - When pasting Simple Pages added to the paste buffer via a "cut", user can choose to move or copy.
  - When pasting Simple Pages added to the paste buffer via a "copy", page is copied (i.e., a new page
    is created, which, when edited, has no effect on the old page).
- Course Editor interface improvements:
  - An "edit" link is included for all editable items (uploaded html, css, js, and txt files),
    templated files (Syllabus, Simple Page, Simple Problem, External Resource, About Me) and published 
    resources for which user has rights to edit.
  - A "blank" web page can be created and the RichText Editor, and "manage dependencies" button used to edit it.
  - Undo delete and history tabs are available for both the Supplemental Content and Main Content areas.
  - Archive files can be uploaded (and decompressed) in the Main Content and Supplemental Content areas.
  - HTML files uploaded to Supplemental Content can be edited, and any dependencies can be replaced 
    (or uploaded if missing).
  - Switching of the active tab on mouse-over has been eliminated; clicking an already active tab will
    make the tab inactive.
  - Display of file input elements for External Resource, Load Map, Upload File and IMS Import now 
    triggered by clicking the icon/link for the particular action.
  - Use of static HTML files: extpickframe.html and extpickcode.html discontinued for External Resource.
  - Use of a unique identifier is ensured when adding a folder or composite page to a course.
  - No cut/copy links are provided for special folders created when using groups:
    (Groups Folder, folder for each group, and Discussion Boards folder for each group).
  - The location of Remove, Rename, Cut, Copy links is consistent for each line in the Course Editor
    (visibility hidden if Cut or Copy not available for a particular resource).
  - Checkboxes for hidden, URL hidden, Randomly Pick, Random Order can be selected for multiple items
    in a folder and submitted all at once.
  - External resources can be included in Composite pages (iframes used).
  - Support for uploading multiple (linked) pages to a course, where only one (containing links to others) 
    is included in a folder.
  - Editing utilities not specific to current folder moved to separate "Content Utilities" tab.
  - Copy Course Content to Authoring Space now displays hierarchical view of folders and content, and allows
    user to pick which ones to copy (if user session NOT hosted on home server, switch server link shown).
  - Copy Course Content to Authoring Space prompts user to explicitly choose target space, if user has co-author
    access to Authoring Spaces in addition to his/her own Authoring Space.
  - "Simple Pages" and "Simple Problems" added to a course using the Course Editor can be copied to Authoring
    Space ("Simple Problems" are converted to the appropriate response type).
  - Unique time-based id included in path for storage of uploaded photos in Simple Pages to avoiding overwriting 
    files with the same name in different Simple Pages in the same course.
  - Verification of valid xhtml for Simple Pages supports more tags and supports rendering of HTML entities.
- Dependencies in HTML pages uploaded directly to a course can be managed via a Manage Dependencies button
  available when editing the file.
- When using discussion voting, a course setting can be used to configure styles used for popular/unpopular 
  posts.
- When displaying user lists, checkboxes can be used to decide what user information to include for each 
  user listed.
- Course owner can revoke/modify Course Coordinator roles from the "list users" screen.
- The role switcher used to switch between course roles now supports switching between roles when 
  viewing a page with "URL hidden", if URL hiding applies in one role, but not the other.
- The time column in student submission reports (HTML and csv output) has been internationalized.
- The icon used to link to the Course Editor to edit folder contents is now also displayed for
  "composite pages" added to a course via the Course Editor.
- Generation of breadcrumb trails in auto-enrollment configuration screens now uses standard routines.
- Credits earned for a course can be different for a specific student (e.g., retrieved from institutional 
  classlist data), or specified when a Course Coordinator adds a student to a course via the web GUI. 
- Simple pages can have content open/close dates and other content style parameters.
- When Camtasia 8 files are uploaded directly to a course in a zip file, they are automatically unpacked.
- Exam blocking configuration has more options:
  - Generation of printouts can be added to the feature blocked.
  - Access to content within a LON-CAPA course (aside from the online exam itself) can be blocked.
  - The blocking event may be set to only apply for a specified timed quiz (i.e., a folder with a
    timer set), and come into effect when the user presses "Show Resource" to start the timer.
- New parameters
  - lenient (partial credit for optionresponse and matchresponse).
  - retrypartial (new submission allowed, subject to tries limit, for partially correct).
  - discussvote (voting like/unlike on discussion posts).
  - printstartdate and printenddate (define time window during which printout generation is allowed).
- Student names containing accented character(s) no longer cause misalignment of columns in Assessment Chart.
- Course personnel permitted to view grades can view a student's prior versions of a Bridge Task (BT).


Grading
- Bubblesheet grading of CODEd exams now supports use of the randomorder and randompick parameters 
   for the folder being graded.
- When using bubblesheets to record grades for handgraded exams, user can choose what filled last bubble 
  represents (either a zero or maximum possible).
- When composing messages to students on grading screens, decision on whether or not to have scrollbars 
  is left to web browser.
- Support Turning Technologies clickers.


Spreadsheet
- spreadsheet functions -- &NUM(), &BIN(), &SUM(), &MEAN, &STDDEV(), &PROD(), &MAX(), &MIN(), &SUMMAX, 
  &SUMMIN(), &MAX(), &MIN(), &SUMMAX, &SUMMIN() now exclude cells previously populated but since 
  updated to contain nothing, when counting numbers of cells.


Printouts
- When problems/resources from folder are printed for CODEd assignments, the order will be the same 
  as seen on screen for a particular CODE, in cases where randomorder is set for the folder.
- When printing problems/resources for another user in cases where "randompick" is set for the folder,
  resources printed will be appropriate for the "randompick" in force for the other user. 
- The ability to print resources can be controlled by setting printstartdate and/or printenddate.
- The attribute direction="horizontal" for radiobutton response types applies in printouts.
- Privileged users can print incomplete problems for selected students.
- Printout option to sort by section, then students (the default) works as advertised.

  
Gnuplot
- Support is available for utf-8 encoding (requires gnuplot 4.4 or later).
- More control is provided over arrows in vector plots.
- Complete control is provided over axis major tics.
- Tick labels can be rotated.
- Drop-down color-picker available (uses jPicker). 
- Support for dashed lines in Gnuplot (both screen and printouts).


Authoring
- New problem responsetype: functionplotresponse (uses GeoGebra).
  - Students using mouse pointer or trackpad etc., to drag handles to construct a graph with splines.
    - uses either Geogebra HTML5 javascript in modern browser, otherwise falls back to Java applet.
  - Author establishes rules for determining correctness of graph (e.g., match of function itself,
    or match of first derivative, or second derivative etc. to student submission) to grade submission.
    - Uses HTML5 javascript if browser support available, otherwise falls back to Java applet.
- New problem templates
  - Custom Response comparing Equations using Computer Algebra System.
  - Functionplotresponse with Background Plot.
  - Functionplotresponse with Labels.
  - Functionplotresponse with Vectors and Hints.
  - Functionplotresponse with two Splines and Hints.
  - Drop Box.
  - Option Response - Matching (multilingual).
  - Numerical Response Multiple Answers unordered.
- Spell-checking is available for <input type='text'> and <textarea> using spellcheck attribute;
  supported languages are: en, de, es, fr, he, pt, tr.
- Warnings about significant figures where answer format is set to be S, but correct answer is an 
  integer with multiple trailing zeroes are eliminated.
- Radiobuttonresponse containing foil with location="bottom" and value="false" can now include "true" 
  foil in next to bottom position.
- Optionresponse includes a "noprompt" attribute in <foilgroup> tag which can suppress the default:
  "all that are true" text displayed in checkbox mode.
- Matchresponse:  An additional attribute: "columns", works in tandem with the existing attribute: 
 "direction". If columns is not set, display defaults to a single row, for direction=horizontal, or 
  single column - otherwise).
  - When columns is set to an integer (e.g., 3), for direction=horizontal items will be labelled as:
      A B C
      D E F 
    or, for direction=vertical:
      A C E
      B D F
- A "People" item is included in the inline menu if a user's current role is author, which 
  provides access to user management (e.g., add/revoke co-author roles).
- A "Change Log" item available in the user management area if a user's current role is author
  can be used to list the history of co-author role changes.
- The tabular display of the contents of a LON-CAPA directory is now sortable by column, and a
   new column (Size) has been added, which will show file size.
- Publishing a Camtasia 8 file automatically sets allow tags for all dependencies.
- Image supported as link in <window> tag.
- New tag <windowlink> will bring up the link in a modal window.
- Icon added to Custom Rights file editor to highlight status of allow/deny setting for each entry.
- If iframe tag is included in a resource, and source points at another LON-CAPA resource, 
  inhibitmenu="yes" attribute added during rendering, unless included in original published resource
  to avoid duplicate LON-CAPA inline menus.
- Support for upload of .webm files (HTML5).
- Enhanced readability of "Large Text Entry Area"-block in colorful editor by improving contrast/color


Localization
- Many new translations and improvements for German localization.
- Some updates to translations for other supported languages.
- List of selectable languages in user preferences is shown untranslated (i.e., in native language/
  alphabet). 


Documentation
- Reorganization of Authoring Manual -- several additional contextual help files created/included.
- Text in several help files used in Course Coordination manual clarified or extended.
- Help menu provides authors and coordinators access to both Authoring and Course Coordination 
  manuals (both PDF and HTML) from dropdown lists in help menu screen header.
- Documentation for functionplotresponse (student graphing response type).
- Added documentation on importing testbanks to Authoring Manual.
- Added documentation on adaptive hints to Authoring Manual.
- Added documentation for library files to Authoring Manual. 


Third-party modules
- DragMath WYSIWYG math editor updated to 0.7.9 and signed using InCommon code signing cert.
- Mimetex renderer updated to 1.74 (addresses rendering issue for certain expressions with 
  Ubuntu 10.04, 64 bit architecture).
- GeoGebra updated to 4.4.3.0


Other bug fixes
- Access to versioning information is available for published content which requires wrapping.
- Unwanted log messages on a load-balancer server generated when /adm/switchserver is called via
  internal_redirect, immediately following authentication, have been eliminated.
- Speed-up in display of Course Contents screen during timed quiz.
- Incorrect syntax in expression passed to maxima no longer results in "Code ran too long"
  for certain recent Linux distro versions.
- Sporadic "code ran too long" errors for problems involving use of &cas() function
  calls to maxima symbolic math engine eliminated.
- In metadata, creationdate and modificationdate set appropriately at publication time. 
- Dynamic metadata in multi-part probem now includes statistics for other than last calculated part.
- Significant figures checking of "computer's answer" no longer warns of conflict in the case
  where the answer format is set to S, but the correct answer is an integer with multiple trailing 
  zeroes.
- Image file uploaded to domain configuration for header image no longer truncated by 1 byte.
- Portal URL (if defined in domain configuration) is now set in cached domain defaults.
- Search of the cross-institutional content respository can once again search all domains hosted
  on a multi-domain server.
- Use of a unique identifier enforced when creating a new folder or composite page in a course using
  the Course Editor, by testing for uniqueness of time-based id.
- Access to functionality in CPAN module: Math::Complex in Safe Space re-enabled by replacing 
  standard module with LONCAPA::LCMathComplex which eliminates use of Config.pm (disallowed in 
  Safe Space).
- What's New screen now correctly displays roles which became active in the specified time period.
- Approval of course requests in domains containing a hyphen in the domain name now works.
- Generation of javascript for first page of course request form modified to work with 
  perl-5.8.8-40.el5_9 (CentOS 5 update: 3/26/2013).
- Improved handling of changing client IP address when using dedicated load-balancer server.
- List of selected broadcast message recipients handled correctly in the case where there is only
  one user of the specified type (active, future, or previous).
- Support toggle between Rich Text/Plain Text for multiple textareas in a composite page.
- Correctly detect browser version for IE, in cases where Chrome Frame plug-in is in use.
- Browser type and version detection supports Chrome.
- Use hostname in place of IP address to avoid a "certificate verify failed" issue with certain 
  SSL configurations when fetching a user file from a remote server for permanent storage in 
  userfiles subdirectory in course's directory on home server.
- Can display applets where hidden URL is set, and can also display Camtasia files (with dependencies
  on .js, .swf and .mp4 files) where hidden URL is set.
- Script available to expire DC role for user whose homeserver is also library server in a DC role's 
  domain.
- Eliminate creation of unnecessary copies of previous versions of LON-CAPA files which have changed
  (saved as .lpmlsave files) -- if other than the latest stable LON-CAPA version was installed, 
  and later updated with a newer stable release of LON-CAPA.
- Re-establish availability of ln() function in script blocks for Linux distros running perl 5.10.1 
  or newer.
- Matchresponse editing with colorful editor: additional blocks selected to be inserted after
  the matchingresponse block now added on the correct hierarchical level.
- Can display student submissions from customresponse items with multiple input fields.
- Can view own submissions in anonymous surveys.

Internals
- Requests to dump the contents of a GDBM database file residing on the same server as hosting the 
  user session are handled by direct filesystem access instead of via the LON-CAPA daemons.    
- Requests for filtered search of GDBM database file used for quick look-up of course information for 
  courses in a domain also uses direct filesystem access if session server is also the domain's 
  library server.
- Support for Apache 2.4 -- $r->user() needs to be set to user's username for requests for <Location>
  directives which include Require valid-user.
- Modifying a domain default which is cached for 24 hours will cause the domain defaults caches to be 
  expired on other servers belonging to the domain, causing the new default to be retrieved and cached 
  on the domain's servers the next time defaults are needed.  


New supported Linux distros:
Fedora 17, 18, 19, 20; SuSE 12.2, 1.3, 13.1; and Ubuntu 12.04 LTS are newer Linux distro versions 
which are now supported with LON-CAPA. 
Note: Ubuntu 14.04 LTS is also expected to be supported for 2.11.0 (final).


Specific bug/enhancement requests addressed:
838, 874, 1223, 2201, 2359, 2484, 2598, 2802, 3009, 3374, 3462, 3569, 4046, 4164, 4331, 4334, 4492, 4586,
4769, 4827, 4900, 5047, 5209, 5324, 5590, 5676, 5685, 5712, 5753, 5771, 5794, 5824, 5891, 5962, 5991, 6127,
6128, 6149, 6165, 6185, 6202, 6224, 6244, 6291, 6305, 6340, 6371, 6408, 6419, 6420, 6431, 6448, 6450, 6454,
6455, 6459, 6470, 6489, 6491, 6518, 6540, 6534, 6535, 6542, 6543, 6548, 6550, 6558, 6559, 6561, 6566, 6576,
6577, 6586,6587, 6592, 6593, 6595, 6603, 6606, 6608, 6610, 6619, 6629, 6632, 6634, 6638, 6639, 6646, 6647,
6649, 6653, 6660, 6662, 6667, 6668, 6670, 6671, 6675, 6679, 6685, 6689, 6694, 6703


Installation Notes:

To use this release you need to have version 1-23 of LONCAPA-prerequisites
installed.

To install this update:

1) You will need to be running CentOS 5 or 6, RHEL (AS|ES) 4, 5 or 6,
Scientific Linux 5 or 6, SLES 9, 10 or 11, Ubuntu LTS 8, 10 or 12, 
Fedora Core 13, 14, 15, 16, 17, 18, 19 or 20 or SuSE 11.4, 12.1, 12.2, 
12.3 or 13.1. (Fedora Core 9, 10, 11 and 12, and SuSE 11.1, 11.2 & 11.3 
should continue to work, but are deprecated.)

You will need to be root to use the commands listed at steps 2 to 9 below.
On Ubuntu LTS servers either prepend sudo for each command, or use sudo -i.

2) Update LONCAPA-prerequisites to 1-23

(a) Fedora

yum update

(b) RedHat Enterprise 4

up2date -u LONCAPA-prerequisites

(c) Red Hat 5 and 6/Centos 5 and 6/Scientific Linux 5 and 6

yum update

(d) SuSE/SLES

Use yast-> Installation Source to refresh the LON-CAPA repository
Use yast->Software Management->Search to update LONCAPA-prerequisites

(e) Ubuntu

sudo apt-get update
sudo apt-get upgrade

On all distributions, it is recommended that you check that you have
the correct versions of LONCAPA-prerequisites installed before proceeding.

(i) CentOS/RHEL/Scientific Linux/Fedora/SLES/SuSE
rpm -q LONCAPA-prerequisites

should report:
LONCAPA-prerequisites-1-23.X
(where X is a distro identifier e.g., centos5.lc)

(ii) Ubuntu
sudo dpkg -l loncapa-prerequisites

should report
ii loncapa-prerequisites 1.23-X
(where X is a version number which depends on Ubuntu distro)

3) Download the new LON-CAPA tarball from
wget http://install.lon-capa.org/versions/loncapa-2.11.0.RC3.tar.gz

and untar it

tar xzvf loncapa-2.11.0.RC3.tar.gz

4) stop the LON-CAPA system services

/etc/rc.d/init.d/loncontrol stop

5) stop the web server:

Fedora 16 (and older)/RHEL/Centos/Scientific Linux
/etc/init.d/httpd stop

Fedora 17 (and newer), SuSE 12.X, 13.1:
service httpd stop 

SLES 9:
/etc/init.d/apache stop

SuSE 11.X, SLES 10, SLES 11, Ubuntu:
/etc/init.d/apache2 stop


6) Run the UPDATE script as root
(Note: new in 2.11 -- you will be asked to confirm that you wish to remove files installed
 by older versions of LON-CAPA which are no longer used by 2.11).
  
cd loncapa-2.11.0.RC3
su
./UPDATE


7) If you are updating a LON-CAPA library server from an earlier version 
of LON-CAPA, you will need to run a script to migrate authoring spaces
in domain(s) hosted on the server from their old locations in:
/home/ to their new locations in /home/httpd/html/priv

To do this use the command:

perl /home/httpd/perl/debug/move_construction_spaces.pl


8) If your Apache web server has been configured to use SSL, and you have
included rewrite rules to rewrite all requests to http://<yourserver>/
to https://<yourserver>/ you will may to modify your rewrite rule to
(a) allow internal HEAD requests to /cgi-bin/mimetex.cgi to be served
http://, in order to support vertical alignment of mimetex images
(one of the options for rendering Math content); (b) allow requests
for certain URLs (external resource, annotations, jsMath, and syllabus)
to be served http:// to accommodate the use of iframes which would
otherwise result in browser blocking of mixed active content. 

Starting with LON-CAPA 2.10, a config file containing rewrite
rules -- loncapa_rewrite.conf -- will be added to /etc/httpd/conf
(CentOS, Red Hat, Scientific Linux, Fedora) or /etc/apache2 (SuSE, SLES,
Ubuntu, Debian). By default, rewrites are set to off (using
RewriteEngine off).  If you already have you own rewrite rules in place
you should either transfer them to loncapa_rewrite.conf, after completing
the LON-CAPA update, or leave your existing file in place and comment out
the entries in loncapa_rewrite.conf. Otherwise, if you are using
SSL with Apache, and would like requests to http://<yourserver>/
to be rewritten to https://<yourserver>/, you should copy
rewrites/loncapa_rewrite_on.conf to loncapa_rewrite.conf to enable this.
The rules included in that config file do not rewrite internal
requests (i.e., from 127.0.0.1) to https://, so vertical alignment
of mimetex images is supported. In 2.11 there are also rules for the URLs
noted above, which exclude them from rewrites to https:// to avoid 
issues with mixed active content.

Once you have the rules for ^/adm/wrapper/ext/(?!https:) and
^/public/.*/syllabus$ in place in loncapa_rewrite.conf you should also add
the following to your <VirtualHost _default_:443> </VirtualHost> block:

  <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} =on
    RewriteRule ^/adm/wrapper/ext/(?!https:\/\/) http://%{HTTP_HOST}%{REQUEST_URI} [R,L,NE]
    RewriteRule ^/public/.*/syllabus$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L,NE]
  </IfModule>
 
Note: this is only needed if you are using SSL (i.e., requests to
https://<yourserver>/ are supported) and you want to rewrite external
requests to http://<yourserver>/ to always use https://<yourserver>/


9) Note about /home/httpd/lib/perl/localenroll.pm
When you use UPDATE to update an existing LON-CAPA installation to a newer
version, the customizable localenroll.pm file is not overwritten.  This
is the file which must be customized to support integration of LON-CAPA
with institutional data sources (e.g., for automated update of course
rosters or user information). Whenever new routines are included in
localenroll.pm these will appear in localenroll-std.pm, which is updated
when a new LON-CAPA version is installed.

If you have previously customized localenroll.pm it is recommended that
you compare the contents of localenroll.pm and localenroll-std.pm after
an update to see if there are new subroutines (which exist as stubs in
localenroll-std.pm) which can be copied to your custom localenroll.pm
and later customized, should you wish to use that functionality.  Recent
changes are addition of new_course() in LON-CAPA 2.10 to support LON-CAPA
access to institutional classlist data for a particular course, 
based on co-ownership (previously only ownership was considered), and
in LON-CAPA 2.11 (a) addition of crsreq_updates() to support domain-specific
operations during course request processing; (b) a fourth arg in allusers_info()
-- $lc_users -- a reference to hash containing LON-CAPA usernames,
suitable for institutions which only allow a server to retrieve
institutional user information when the user's username is included in the 
query; (c) validate_instcode() can return a third value: the default credits
earned by students when completing the course corresponding to the supplied
institutional code; (d) validate_crsreq() takes an additional arg:
$custominfo -- an optional reference to a hash of custom form data.
The custom form data themselves will come from crsreq_updates().


10) restart the LON-CAPA system services
/etc/rc.d/init.d/loncontrol start


11) restart the webserver:

Fedora (16 and older)/RHEL/Centos/Scientific Linux
/etc/init.d/httpd start

Fedora 17 (and newer), SuSE 12.X, 13.1:
service httpd start

SLES 9:
/etc/init.d/apache start

SuSE 11.X, SLES 10,11, Ubuntu:
/etc/init.d/apache2 start


12) It is recommended that loncron is run
(as the www user) after installation/update is complete.

su www
/home/httpd/perl/loncron

This will write to files in /home/httpd/lonTabs used to
store information about LON-CAPA versions on other servers in
the cluster to which the server belongs.  It may take some
minutes to complete as the script will contact other servers
in the LON-CAPA network sequentially.

13) It is also recommended that you check disk usage for courses
and Authoring Spaces, as 2.11.0 introduces default quotas of 0.5 GB
for each course (content uploaded directly via Course Editor) and
the same for each author.

For courses, log-in as Domain Coordinator and use:
Main Menu -> Status of domain servers -> Display quotas and usage for 
Course/Community Content.

For Authoring Spaces, log-in as Domain Coordinator and use:
Main Menu -> Create users or modify the roles and privileges of users
->  Manage Users, and select Author in the "Role" dropdown, then 
press the "Display List of Users" button.

The 0.5 GB default quota for Authoring Spaces in the domain can be replaced via:
Main Menu -> Set domain configuration -> Blogs, personal web pages,
webDAV/quotas, portfolios

The 0.5 GB default quota for Courses can be replaced via:
Main Menu -> Set domain configuration -> Course/Community defaults 
 
Quotas for individual authors can be set via:
Main Menu -> Create users or modify the roles and privileges of users
-> Add/Modify a User

Quotas for individual courses can be set via:
Main Menu -> View or modify a course or community 
then search/select the course and use:
"View/Modify quotas for group portfolio files, and for uploaded content". 


----NOTES
1) Defects reports, and enhancements requests can be entered at
        http://bugs.lon-capa.org
2) Mailing lists can be joined and left at http://mail.lon-capa.org
3) Installation/update support is available from helpdesk at loncapa.org 

Stuart Raeburn
LON-CAPA Academic Consortium
