Release notes for WeBWorK 1.9.03

From WeBWorK
Jump to: navigation, search
This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.



The WeBWorKTeam is pleased to announce the release of WeBWorK 1.9.03. This release makes WeBWorK 1.9 compatible with PG 2.0, allowing WeBWorK 1.9 and 2.0 to share a single PG codebase.

Changes since WeBWorK 1.9.02 include:

  • several changes to new question for path to system HTML directory, default perl path is #!/usr/bin/env perl.
  • cgi/MAKEDEBUG now preserves permissions.
  • the debug wrapper scripts were removed (can be generated with MAKEDEBUG).
  • changed the shebang lines on the CGI scripts to #!/usr/bin/env perl.
  • using new WeBWorK::PG::ImageGenerator and WeBWorK::PG::Translator in cgi/cgi-scripts/ and cgi/cgi-scripts/
  • spelling corrections in cgi/cgi-scripts/, cgi/cgi-scripts/, cgi/cgi-scripts/, and cgi/cgi-scripts/
  • renamed backup() to back_up() to remove conflict with another backup routine in cgi/cgi-scripts/
  • courseScripts/MAKELINKS written to robustly make symlinks from shared PG macros and modules to WW1 courseScripts directory, removed MAKELINKS.PL and
  • lib/ support for a global, web-accessible temp directory, a global non-web-accessible temp directory, and a global DATA directory.
  • lib/ replaced with stub.


The complete system is distributed as two tarballs. One for the WeBWorK system itself, and one for the PG system, including a standard set of PG modules and macro files. This is the first release of WeBWorK 1 which requires the separate PG distribution.

Files are available below and on our SourceForge project page:


Documentation on installing and configuring WeBWorK is available on the U of R WeBWorK site and in the distribution itself. However, this version introduces some differences in installation that are noted here:

Directory layout

We're currently in a transitional period concerning the layout of WeBWorK directories. For the time being, I suggest the following directory layout:

/opt						  base directory
    pg-2.0.pr3 				  PG distribution, unpacked from pg-2.0.pr3.tar.bz2.
    webwork-1.9.03 			  WeBWorK 1 distribution, unpacked from webwork-1.9.03.tar.bz2.
        courses					  courses directory
        system 					  libraries, CGI scripts, and shell scripts
        system_html				  HTML files utilized by the system
        webworkdocs				  HTML documentation
    pg -> pg-2.0pr3			  symlink to current version of PG
    webwork -> webwork-1.9.03    symlink to current version of WeBWorK 1

If you have WeBWorK 2 installed, you might also have a webwork-2.0prX directory and a webwork2 symlink pointing to the current version of WeBWorK 2.

Course script symlinks

The webwork/system/courseScripts directory no longer contains PG modules and macro files, as these are now kept in pg/lib and pg/macros, respectivly. Instead, there is a script named MAKELINKS which generates symbolic links to the modules in pg/lib and the macros in pg/macros. If your directory structure is laid out as above, invoke MAKELINKS as follows:

; cd /opt/webwork/system/courseScripts 

If your pg directory is somewhere else:

; cd /opt/webwork/system/courseScripts 
; perl MAKELINKS /path/to/pg 

If a module or macro file is added to your pg directory, re-run MAKELINKS to create a corresponding symlink.

Debugging wrapper scripts

Since the CGI debug scripts are programmatically generated, they have been removed from the distribution. To create them, run the script MAKEDEBUG from the webwork/system/cgi directory:

; cd webwork/system/cgi 

This will create a wrapper script for each perl script in the enclosed cgi-bin directory.

The only wrapper script that is necessary for WeBWorK's operation is If you wish, you can skip running MAKEDEBUG and instead create only the wrapper:

; cd webwork/system/cgi 
; cp -p MAKEDEBUG.template 

Sharing the equation cache

Though WeBWorK 1 and 2 now use a common PG subsystem, by default they use separate equation caches. To share the equation cache, make sure that the following pairs of configuration variables refer to the same paths and URLs:

WeBWorK 1 WeBWorK 2
$equationCacheDirectory $webworkDirs->{equationCache}
$equationURL $webworkURLs->{equationCache}
$equationCacheDB $webworkFiles->{equationCacheDB}


If you need help installing or using WeBWorK, visit the WeBWorK discussion group and post your question there. The developers monitor this forum.

Bug Reports & Feature Requests

Submit bug reports and feature requests at We can't fix bugs and add features if you don't tell us about them!


While we welcome patches of any sort, by patching against the latest CVS code, you save us and yourself time. A bug in 1.9.03 may be fixed in CVS, and we can more easily handle patches against the latest code. Check out the latest development version from CVS and patch against that. Consult the WeBWorKCVS topic for more information.

-- Main.SamHathaway - 17 Feb 2004

follow us