https://k5wiki.kerberos.org/w/api.php?action=feedcontributions&user=Rsilk&feedformat=atomK5Wiki - User contributions [en]2024-03-28T20:05:56ZUser contributionsMediaWiki 1.27.4https://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=2331Kerberos for Windows (KfW) 3.2.x Build Environment2009-09-07T18:25:08Z<p>Rsilk: /* Installing and Cygwin and SVN */</p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your development environment to build KfW.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
====Source Control====<br />
* CVS with Kerberos Support<br />
* SVN <br />
* PuTTY <br />
<br />
====Scripting Support====<br />
* Cygwin (v1.5 or later)<br />
** Provides the sed, awk, cat, rm, and find utilities.<br />
* ActiveState Perl (v5.10.0.1005 or later)<br />
<br />
====Compilers and Libraries====<br />
* Microsoft Visual Studio (v2005 SP1 or later)<br />
* Microsoft Windows SDK (v6.1 or later)<br />
<br />
====Documentation Generation====<br />
* Doxygen<br />
* Microsoft HTML Help Workshop<br />
* Microsoft Windows Help Authoring Kit<br />
<br />
====Installation Packagers====<br />
* Windows Installer XML (WiX) toolset<br />
* Nullsoft Scriptable Install System (NSIS)<br />
<br />
==Setting up Source Control Access==<br />
In order to access the SVN repository, we will need to install and configure Cygwin, the KFW binaries (for Kerberized source control access), PuTTY, and a custom build of the CVS client.<br />
<br />
Please note: Prior to testing any of the configurations described below, please be sure that you have been granted permissions to access the SVN and CVS repositories. PuTTY will throw unintelligible errors if permissions have not been set properly.<br />
<br />
===Installing and Cygwin and SVN===<br />
# Download a copy of the Cygwin installer [http://www.cygwin.com/ here]. Save it too your local machine (note the location, as this executable is required to make any modifications to you Cygwin distribution).<br />
# Run '''setup.exe'''<br />
# Click '''Next''' through the introduction and download screens, accepting the default values. <br />
# When prompted, change the root directory of the Cygwin installation to '''C:\tools\cygwin''', and click '''Next'''.<br />
# When choosing a directory to store the installation packages, you may accept the default, though this might place the files in temporary internet files directory. If you want these packages to be available for reinstallation at a later time, choose a more suitable directory (i.e. '''C:\cyginstall'''). Click '''Next'''.<br />
# Leave the default connection settings, and click '''Next'''<br />
# Choose a download site from the list, and click '''Next'''<br />
# In the ''Choose Packages'' screen, mark the Devel/Subversion package for installation, and click '''Next'''. The installer will proceed to download and install the selected packages.<br />
# Click '''Finish'''. The installer will close.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\cygwin\bin''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Open Windows Explorer and navigate to the Cygwin bin directory ('''C:\tools\cygwin\bin''').<br />
# Delete '''awk.exe''' (this is a symbolic link that the Windows shell doesn't handle properly).<br />
# Copy '''gawk.exe''' and rename it to '''awk.exe'''.<br />
<br />
===Installing the KfW Binaries===<br />
If you are not currently using a pre-built version of KfW, you'll need to install one now in order to use Kerberized source control access.<br />
<br />
# Download a copy of the '''MIT Kerberos for Windows''' MSI installer [http://web.mit.edu/kerberos/dist/ here]. Run the MSI. <br />
# Accept the default install options.<br />
# Once setup completes, launch the '''Network Identity Manager (NIM)''' from the '''Kerberos for Windows''' folder in the '''Start Menu'''. By default, it should be configured for the ATHENA.MIT.EDU realm.<br />
# Create new credentials using you Athena username and password, and minimize NIM (this should hide it in the taskbar).<br />
<br />
===Installing PuTTY===<br />
PuTTY will provide the Kerberized SSH connection to our SVN repository.<br />
# Download a copy of the '''PuTTY with GSSAPI Extensions''' archive [http://www.sweb.cz/v_t_m/putty/PuTTY-0.58-GSSAPI-2005-07-24.zip here]. Note, there are several distributions of PuTTY that support Kerberos. You may choose the one that works best for you.<br />
# Unzip the archive to '''C:\tools\putty'''.<br />
# Launch '''C:\tools\putty\putty.exe'''.<br />
# Using the tree on the left, navigate to the '''Connection -> Data''' screen and enter your Athena username as the '''Auto-login username'''.<br />
# Open the '''Connection --> SSH --> Auth screen'''. In Authentication Methods, select '''Attempt "keyboard-interactive" auth (SSH-2)''' and '''Attempt Kerberos 5 GSSAPI/SSPI auth (SSH-2)'''. In Authentication parameters, select '''Allow Kerberos 5 ticket forwarding in GSSAPI/SSF''' and enter '''ATHENA.MIT.EDU''' as the '''Server realm'''.<br />
# Open the '''Session''' screen. Select (highlight) '''Default Settings''' from the list and click '''Save'''.<br />
# Close the PuTTY configuration windows.<br />
<br />
===Configuring SVN & PuTTY===<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\putty''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Under the '''System Variables''' list, add a '''SVN_SSH''' variable and give it the value '''plink.exe'''.<br />
# Create a directory to house a temporary SVN snapshot (i.e. '''C:\kfw\svn''').<br />
# Open the Command Prompt ('''Start -> Run -> cmd''') and type: <br />
#:<code>plink svn.mit.edu</code><br />
#:Please note, it's important to run plink once before attempting to use it with SVN, because when connecting to the server for the first time there will be interactive prompts that SVN does not support.<br />
# You may be prompted to add the server to your trusted list. If so, type '''y''' and hit '''Enter'''. Once the connection completes, hit '''Ctrl+C''' to end plink. It should ''not'' prompt you for a password at any time. If so, your Kerberos credentials have not been configured correctly or have expired.<br />
# Now that we've confirmed plink is working with a Kerberized connection, we need to checkout a snapshot of the SVN repository. In the Command Prompt type: <br />
#:<code>svn co svn+ssh://svn.mit.edu/krb5/trunk C:\kfw\svn</code><br />
If your SVN client is properly configured, you should get a complete snapshot of the Krb5 trunk from the SVN repository, now located in C:\kfw\svn (or another directory of your choosing).<br />
<br />
===Installing CVS===<br />
# Download a copy of CVS that supports Kerberos authentication. While there doesn't appear to be a readily accessible CVS client distribution that supports Kerberos, you can use the cvs client found [http://web.mit.edu/rsilk/Public/Kerberos/Utils/cvs.exe here].<br />
# '''Move''' the file to your Cygwin binary directory (i.e.''' C:\tools\cygwin\bin''').<br />
<br />
==Configuring the Build Tools==<br />
Now that we have access to the repositories and have a snapshot of the SVN trunk, we need to install the required Microsoft libraries. We also need to install ActiveState Perl in order to run the build script. Finally, we need to install the remaining build tools required for documentation generation and packaging.<br />
<br />
===Configuring Microsoft Visual Studio===<br />
This guide assumes you have a working version of Microsoft Visual Studio 2005 Standard or later. Be sure to install the 64 bit libraries in addition to the standard 23 bit libraries if you intend to build for both architectures.<br />
<br />
===Installing the Microsoft Windows SDK===<br />
# Download a copy of the '''Microsoft Windows SDK''' (version 6.1 or later) [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en here].<br />
# Run the installer, accepting all default options (though you may need to select the 64 bit libraries if desired). <br />
<br />
===Installing ActiveState Perl===<br />
# Download a copy of '''ActiveState Perl''' (currently version 5.10.0.1005) [http://www.activestate.com/activeperl/downloads/ here]. <br />
# Run the installer, accepting all default options. This should automatically add the Perl directory to your system path.<br />
<br />
===Installing Microsoft HTML Help Workshop===<br />
# Download a copy of '''Microsoft HTML Help Workshop''' (currently version 1.3) [http://go.microsoft.com/fwlink/?linkid=14188 here].<br />
# Run the installer, accepting all default options. Please note, the installer may complain that you already have a newer version of Help Workshop installed. Ignore this error; the installer will complete successfully..<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\HTML Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the Windows Help Authoring Kit===<br />
Depending on your build configuration, you may also need the '''Windows Help Authoring Kit'''. <br />
# Download a copy of the '''Windows Help Authoring Kit''' [http://www.microsoft.com/downloads/details.aspx?FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098&displaylang=en here].<br />
# Run the installer, accepting all default options. <br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Doxygen===<br />
# Download a copy of the '''Doxygen distribution for Windows''' (currently version 1.5.9) [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc here].<br />
# Run the installer, accepting all default options. This should automatically add the Doxygen directory to your system path.<br />
<br />
===Installing WiX===<br />
# Download a copy of the Windows Install XML ('''WiX''') core toolset (currently version 2.0) [http://wix.sourceforge.net/downloadv2.html here].<br />
# Unzip the archive to '''C:\tools\wix'''.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\wix''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing NSIS===<br />
# Download a copy of the Nullsoft Scriptable Install System (NSIS - currently version 2.45) [http://nsis.sourceforge.net/Download here].<br />
# Run installer, accepting all default options.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Files\NSIS''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Windows Support Tools===<br />
On some machines you may need to install the '''Windows XP SP2 Support Tools''' package to get the '''filever.exe''' utility (which is currently required by the build script). <br />
# Download a copy of the '''Windows XP SP2 Support Tools''' package [http://www.microsoft.com/downloads/details.aspx?FamilyID=49ae8576-9bb9-4126-9761-ba8011fabf38&displaylang=en here].<br />
# Run the installer, accepting all default options.</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=1745Kerberos for Windows (KfW) 3.2.x Build Environment2009-07-24T23:27:31Z<p>Rsilk: /* Required Tools */</p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your development environment to build KfW.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
====Source Control====<br />
* CVS with Kerberos Support<br />
* SVN <br />
* PuTTY <br />
<br />
====Scripting Support====<br />
* Cygwin (v1.5 or later)<br />
** Provides the sed, awk, cat, rm, and find utilities.<br />
* ActiveState Perl (v5.10.0.1005 or later)<br />
<br />
====Compilers and Libraries====<br />
* Microsoft Visual Studio (v2005 SP1 or later)<br />
* Microsoft Windows SDK (v6.1 or later)<br />
<br />
====Documentation Generation====<br />
* Doxygen<br />
* Microsoft HTML Help Workshop<br />
* Microsoft Windows Help Authoring Kit<br />
<br />
====Installation Packagers====<br />
* Windows Installer XML (WiX) toolset<br />
* Nullsoft Scriptable Install System (NSIS)<br />
<br />
==Setting up Source Control Access==<br />
In order to access the SVN repository, we will need to install and configure Cygwin, the KFW binaries (for Kerberized source control access), PuTTY, and a custom build of the CVS client.<br />
<br />
Please note: Prior to testing any of the configurations described below, please be sure that you have been granted permissions to access the SVN and CVS repositories. PuTTY will throw unintelligible errors if permissions have not been set properly.<br />
<br />
===Installing and Cygwin and SVN===<br />
# Download a copy of the Cygwin installer [http://www.cygwin.com/ here]. Save it too your local machine (note the location, as this executable is required to make any modifications to you Cygwin distribution).<br />
# Run '''setup.exe'''<br />
# Click '''Next''' through the introduction and download screens, accepting the default values. <br />
# When prompted, change the root directory of the Cygwin installation to '''C:\tools\cygwin''', and click '''Next'''.<br />
# When choosing a directory to store the installation packages, you may accept the default, though this might place the files in temporary internet files directory. If you want these packages to be available for reinstallation at a later time, choose a more suitable directory (i.e. '''C:\cyginstall'''). Click '''Next'''.<br />
# Leave the default connection settings, and click '''Next'''<br />
# Choose a download site from the list, and click '''Next'''<br />
# In the ''Choose Packages'' screen, mark the Devel/Subversion package for installation, and click '''Next'''. The installer will proceed to download and install the selected packages.<br />
# Click '''Finish'''. The installer will close.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\cygwin\bin''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the KfW Binaries===<br />
If you are not currently using a pre-built version of KfW, you'll need to install one now in order to use Kerberized source control access.<br />
<br />
# Download a copy of the '''MIT Kerberos for Windows''' MSI installer [http://web.mit.edu/kerberos/dist/ here]. Run the MSI. <br />
# Accept the default install options.<br />
# Once setup completes, launch the '''Network Identity Manager (NIM)''' from the '''Kerberos for Windows''' folder in the '''Start Menu'''. By default, it should be configured for the ATHENA.MIT.EDU realm.<br />
# Create new credentials using you Athena username and password, and minimize NIM (this should hide it in the taskbar).<br />
<br />
===Installing PuTTY===<br />
PuTTY will provide the Kerberized SSH connection to our SVN repository.<br />
# Download a copy of the '''PuTTY with GSSAPI Extensions''' archive [http://www.sweb.cz/v_t_m/putty/PuTTY-0.58-GSSAPI-2005-07-24.zip here]. Note, there are several distributions of PuTTY that support Kerberos. You may choose the one that works best for you.<br />
# Unzip the archive to '''C:\tools\putty'''.<br />
# Launch '''C:\tools\putty\putty.exe'''.<br />
# Using the tree on the left, navigate to the '''Connection -> Data''' screen and enter your Athena username as the '''Auto-login username'''.<br />
# Open the '''Connection --> SSH --> Auth screen'''. In Authentication Methods, select '''Attempt "keyboard-interactive" auth (SSH-2)''' and '''Attempt Kerberos 5 GSSAPI/SSPI auth (SSH-2)'''. In Authentication parameters, select '''Allow Kerberos 5 ticket forwarding in GSSAPI/SSF''' and enter '''ATHENA.MIT.EDU''' as the '''Server realm'''.<br />
# Open the '''Session''' screen. Select (highlight) '''Default Settings''' from the list and click '''Save'''.<br />
# Close the PuTTY configuration windows.<br />
<br />
===Configuring SVN & PuTTY===<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\putty''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Under the '''System Variables''' list, add a '''SVN_SSH''' variable and give it the value '''plink.exe'''.<br />
# Create a directory to house a temporary SVN snapshot (i.e. '''C:\kfw\svn''').<br />
# Open the Command Prompt ('''Start -> Run -> cmd''') and type: <br />
#:<code>plink svn.mit.edu</code><br />
#:Please note, it's important to run plink once before attempting to use it with SVN, because when connecting to the server for the first time there will be interactive prompts that SVN does not support.<br />
# You may be prompted to add the server to your trusted list. If so, type '''y''' and hit '''Enter'''. Once the connection completes, hit '''Ctrl+C''' to end plink. It should ''not'' prompt you for a password at any time. If so, your Kerberos credentials have not been configured correctly or have expired.<br />
# Now that we've confirmed plink is working with a Kerberized connection, we need to checkout a snapshot of the SVN repository. In the Command Prompt type: <br />
#:<code>svn co svn+ssh://svn.mit.edu/krb5/trunk C:\kfw\svn</code><br />
If your SVN client is properly configured, you should get a complete snapshot of the Krb5 trunk from the SVN repository, now located in C:\kfw\svn (or another directory of your choosing).<br />
<br />
===Installing CVS===<br />
# Download a copy of CVS that supports Kerberos authentication. While there doesn't appear to be a readily accessible CVS client distribution that supports Kerberos, you can use the cvs client found [http://web.mit.edu/rsilk/Public/Kerberos/Utils/cvs.exe here].<br />
# '''Move''' the file to your Cygwin binary directory (i.e.''' C:\tools\cygwin\bin''').<br />
<br />
==Configuring the Build Tools==<br />
Now that we have access to the repositories and have a snapshot of the SVN trunk, we need to install the required Microsoft libraries. We also need to install ActiveState Perl in order to run the build script. Finally, we need to install the remaining build tools required for documentation generation and packaging.<br />
<br />
===Configuring Microsoft Visual Studio===<br />
This guide assumes you have a working version of Microsoft Visual Studio 2005 Standard or later. Be sure to install the 64 bit libraries in addition to the standard 23 bit libraries if you intend to build for both architectures.<br />
<br />
===Installing the Microsoft Windows SDK===<br />
# Download a copy of the '''Microsoft Windows SDK''' (version 6.1 or later) [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en here].<br />
# Run the installer, accepting all default options (though you may need to select the 64 bit libraries if desired). <br />
<br />
===Installing ActiveState Perl===<br />
# Download a copy of '''ActiveState Perl''' (currently version 5.10.0.1005) [http://www.activestate.com/activeperl/downloads/ here]. <br />
# Run the installer, accepting all default options. This should automatically add the Perl directory to your system path.<br />
<br />
===Installing Microsoft HTML Help Workshop===<br />
# Download a copy of '''Microsoft HTML Help Workshop''' (currently version 1.3) [http://go.microsoft.com/fwlink/?linkid=14188 here].<br />
# Run the installer, accepting all default options. Please note, the installer may complain that you already have a newer version of Help Workshop installed. Ignore this error; the installer will complete successfully..<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\HTML Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the Windows Help Authoring Kit===<br />
Depending on your build configuration, you may also need the '''Windows Help Authoring Kit'''. <br />
# Download a copy of the '''Windows Help Authoring Kit''' [http://www.microsoft.com/downloads/details.aspx?FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098&displaylang=en here].<br />
# Run the installer, accepting all default options. <br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Doxygen===<br />
# Download a copy of the '''Doxygen distribution for Windows''' (currently version 1.5.9) [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc here].<br />
# Run the installer, accepting all default options. This should automatically add the Doxygen directory to your system path.<br />
<br />
===Installing WiX===<br />
# Download a copy of the Windows Install XML ('''WiX''') core toolset (currently version 2.0) [http://wix.sourceforge.net/downloadv2.html here].<br />
# Unzip the archive to '''C:\tools\wix'''.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\wix''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing NSIS===<br />
# Download a copy of the Nullsoft Scriptable Install System (NSIS - currently version 2.45) [http://nsis.sourceforge.net/Download here].<br />
# Run installer, accepting all default options.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Files\NSIS''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Windows Support Tools===<br />
On some machines you may need to install the '''Windows XP SP2 Support Tools''' package to get the '''filever.exe''' utility (which is currently required by the build script). <br />
# Download a copy of the '''Windows XP SP2 Support Tools''' package [http://www.microsoft.com/downloads/details.aspx?FamilyID=49ae8576-9bb9-4126-9761-ba8011fabf38&displaylang=en here].<br />
# Run the installer, accepting all default options.</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=1744Kerberos for Windows (KfW) 3.2.x Build Environment2009-07-24T20:25:35Z<p>Rsilk: </p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your development environment to build KfW.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
====Scripting Support====<br />
As mentioned above, the Cygwin distribution is used to provide source control access clients. The distribution also provides several tools required by the KfW build script. These include '''sed''', '''awk''', '''cat''', '''rm''', and '''find'''. The script itself is written in Perl designed to be executed by [http://www.activestate.com/activeperl/ ActiveState Perl]. <br />
<br />
====Compilers and Libraries====<br />
The KfW build script requires the '''Microsoft Visual Studio''' build tools to assemble the KfW binaries. The '''Microsoft Platform SDK''' is required to provide the necessary libraries for the KfW build. <br />
<br />
====Documentation====<br />
External documentation is automatically generated by [http://www.doxygen.org/ Doxygen] as part of the build script. <br />
<br />
====Installation Packagers====<br />
The build script uses both the Windows Installer XML ('''WiX''') toolset, as well as the Nullsoft Scriptable Install System ('''NSIS''').<br />
<br />
==Setting up Source Control Access==<br />
In order to access the SVN repository, we will need to install and configure Cygwin, the KFW binaries (for Kerberized source control access), PuTTY, and a custom build of the CVS client.<br />
<br />
Please note: Prior to testing any of the configurations described below, please be sure that you have been granted permissions to access the SVN and CVS repositories. PuTTY will throw unintelligible errors if permissions have not been set properly.<br />
<br />
===Installing and Cygwin and SVN===<br />
# Download a copy of the Cygwin installer [http://www.cygwin.com/ here]. Save it too your local machine (note the location, as this executable is required to make any modifications to you Cygwin distribution).<br />
# Run '''setup.exe'''<br />
# Click '''Next''' through the introduction and download screens, accepting the default values. <br />
# When prompted, change the root directory of the Cygwin installation to '''C:\tools\cygwin''', and click '''Next'''.<br />
# When choosing a directory to store the installation packages, you may accept the default, though this might place the files in temporary internet files directory. If you want these packages to be available for reinstallation at a later time, choose a more suitable directory (i.e. '''C:\cyginstall'''). Click '''Next'''.<br />
# Leave the default connection settings, and click '''Next'''<br />
# Choose a download site from the list, and click '''Next'''<br />
# In the ''Choose Packages'' screen, mark the Devel/Subversion package for installation, and click '''Next'''. The installer will proceed to download and install the selected packages.<br />
# Click '''Finish'''. The installer will close.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\cygwin\bin''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the KfW Binaries===<br />
If you are not currently using a pre-built version of KfW, you'll need to install one now in order to use Kerberized source control access.<br />
<br />
# Download a copy of the '''MIT Kerberos for Windows''' MSI installer [http://web.mit.edu/kerberos/dist/ here]. Run the MSI. <br />
# Accept the default install options.<br />
# Once setup completes, launch the '''Network Identity Manager (NIM)''' from the '''Kerberos for Windows''' folder in the '''Start Menu'''. By default, it should be configured for the ATHENA.MIT.EDU realm.<br />
# Create new credentials using you Athena username and password, and minimize NIM (this should hide it in the taskbar).<br />
<br />
===Installing PuTTY===<br />
PuTTY will provide the Kerberized SSH connection to our SVN repository.<br />
# Download a copy of the '''PuTTY with GSSAPI Extensions''' archive [http://www.sweb.cz/v_t_m/putty/PuTTY-0.58-GSSAPI-2005-07-24.zip here]. Note, there are several distributions of PuTTY that support Kerberos. You may choose the one that works best for you.<br />
# Unzip the archive to '''C:\tools\putty'''.<br />
# Launch '''C:\tools\putty\putty.exe'''.<br />
# Using the tree on the left, navigate to the '''Connection -> Data''' screen and enter your Athena username as the '''Auto-login username'''.<br />
# Open the '''Connection --> SSH --> Auth screen'''. In Authentication Methods, select '''Attempt "keyboard-interactive" auth (SSH-2)''' and '''Attempt Kerberos 5 GSSAPI/SSPI auth (SSH-2)'''. In Authentication parameters, select '''Allow Kerberos 5 ticket forwarding in GSSAPI/SSF''' and enter '''ATHENA.MIT.EDU''' as the '''Server realm'''.<br />
# Open the '''Session''' screen. Select (highlight) '''Default Settings''' from the list and click '''Save'''.<br />
# Close the PuTTY configuration windows.<br />
<br />
===Configuring SVN & PuTTY===<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\putty''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Under the '''System Variables''' list, add a '''SVN_SSH''' variable and give it the value '''plink.exe'''.<br />
# Create a directory to house a temporary SVN snapshot (i.e. '''C:\kfw\svn''').<br />
# Open the Command Prompt ('''Start -> Run -> cmd''') and type: <br />
#:<code>plink svn.mit.edu</code><br />
#:Please note, it's important to run plink once before attempting to use it with SVN, because when connecting to the server for the first time there will be interactive prompts that SVN does not support.<br />
# You may be prompted to add the server to your trusted list. If so, type '''y''' and hit '''Enter'''. Once the connection completes, hit '''Ctrl+C''' to end plink. It should ''not'' prompt you for a password at any time. If so, your Kerberos credentials have not been configured correctly or have expired.<br />
# Now that we've confirmed plink is working with a Kerberized connection, we need to checkout a snapshot of the SVN repository. In the Command Prompt type: <br />
#:<code>svn co svn+ssh://svn.mit.edu/krb5/trunk C:\kfw\svn</code><br />
If your SVN client is properly configured, you should get a complete snapshot of the Krb5 trunk from the SVN repository, now located in C:\kfw\svn (or another directory of your choosing).<br />
<br />
===Installing CVS===<br />
# Download a copy of CVS that supports Kerberos authentication. While there doesn't appear to be a readily accessible CVS client distribution that supports Kerberos, you can use the cvs client found [http://web.mit.edu/rsilk/Public/Kerberos/Utils/cvs.exe here].<br />
# '''Move''' the file to your Cygwin binary directory (i.e.''' C:\tools\cygwin\bin''').<br />
<br />
==Configuring the Build Tools==<br />
Now that we have access to the repositories and have a snapshot of the SVN trunk, we need to install the required Microsoft libraries. We also need to install ActiveState Perl in order to run the build script. Finally, we need to install the remaining build tools required for documentation generation and packaging.<br />
<br />
===Configuring Microsoft Visual Studio===<br />
This guide assumes you have a working version of Microsoft Visual Studio 2005 Standard or later. Be sure to install the 64 bit libraries in addition to the standard 23 bit libraries if you intend to build for both architectures.<br />
<br />
===Installing the Microsoft Windows SDK===<br />
# Download a copy of the '''Microsoft Windows SDK''' (version 6.1 or later) [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en here].<br />
# Run the installer, accepting all default options (though you may need to select the 64 bit libraries if desired). <br />
<br />
===Installing ActiveState Perl===<br />
# Download a copy of '''ActiveState Perl''' (currently version 5.10.0.1005) [http://www.activestate.com/activeperl/downloads/ here]. <br />
# Run the installer, accepting all default options. This should automatically add the Perl directory to your system path.<br />
<br />
===Installing Microsoft HTML Help Workshop===<br />
# Download a copy of '''Microsoft HTML Help Workshop''' (currently version 1.3) [http://go.microsoft.com/fwlink/?linkid=14188 here].<br />
# Run the installer, accepting all default options. Please note, the installer may complain that you already have a newer version of Help Workshop installed. Ignore this error; the installer will complete successfully..<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\HTML Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the Windows Help Authoring Kit===<br />
Depending on your build configuration, you may also need the '''Windows Help Authoring Kit'''. <br />
# Download a copy of the '''Windows Help Authoring Kit''' [http://www.microsoft.com/downloads/details.aspx?FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098&displaylang=en here].<br />
# Run the installer, accepting all default options. <br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Doxygen===<br />
# Download a copy of the '''Doxygen distribution for Windows''' (currently version 1.5.9) [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc here].<br />
# Run the installer, accepting all default options. This should automatically add the Doxygen directory to your system path.<br />
<br />
===Installing WiX===<br />
# Download a copy of the Windows Install XML ('''WiX''') core toolset (currently version 2.0) [http://wix.sourceforge.net/downloadv2.html here].<br />
# Unzip the archive to '''C:\tools\wix'''.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\wix''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing NSIS===<br />
# Download a copy of the Nullsoft Scriptable Install System (NSIS - currently version 2.45) [http://nsis.sourceforge.net/Download here].<br />
# Run installer, accepting all default options.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Files\NSIS''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Windows Support Tools===<br />
On some machines you may need to install the '''Windows XP SP2 Support Tools''' package to get the '''filever.exe''' utility (which is currently required by the build script). <br />
# Download a copy of the '''Windows XP SP2 Support Tools''' package [http://www.microsoft.com/downloads/details.aspx?FamilyID=49ae8576-9bb9-4126-9761-ba8011fabf38&displaylang=en here].<br />
# Run the installer, accepting all default options.</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=1743Kerberos for Windows (KfW) 3.2.x Build Environment2009-07-24T20:21:51Z<p>Rsilk: </p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your development environment to build KfW.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
====Scripting Support====<br />
As mentioned above, the Cygwin distribution is used to provide source control access clients. The distribution also provides several tools required by the KfW build script. These include '''sed''', '''awk''', '''cat''', '''rm''', and '''find'''. The script itself is written in Perl designed to be executed by [http://www.activestate.com/activeperl/ ActiveState Perl]. <br />
<br />
====Compilers and Libraries====<br />
The KfW build script requires the '''Microsoft Visual Studio''' build tools to assemble the KfW binaries. The '''Microsoft Platform SDK''' is required to provide the necessary libraries for the KfW build. <br />
<br />
====Documentation====<br />
External documentation is automatically generated by [http://www.doxygen.org/ Doxygen] as part of the build script. <br />
<br />
====Installation Packagers====<br />
The build script uses both the Windows Installer XML ('''WiX''') toolset, as well as the Nullsoft Scriptable Install System ('''NSIS''').<br />
<br />
==Setting up Source Control Access==<br />
In order to access the SVN repository, we will need to install and configure Cygwin, the KFW binaries (for Kerberized source control access), PuTTY, and a custom build of the CVS client.<br />
<br />
Please note: Prior to testing any of the configurations described below, please be sure that you have been granted permissions to access the SVN and CVS repositories. PuTTY will throw unintelligible errors if permissions have not been set properly.<br />
<br />
===Installing and Cygwin and SVN===<br />
# Download a copy of the Cygwin installer [http://www.cygwin.com/ here]. Save it too your local machine (note the location, as this executable is required to make any modifications to you Cygwin distribution).<br />
# Run '''setup.exe'''<br />
# Click '''Next''' through the introduction and download screens, accepting the default values. <br />
# When prompted, change the root directory of the Cygwin installation to '''C:\tools\cygwin''', and click '''Next'''.<br />
# When choosing a directory to store the installation packages, you may accept the default, though this might place the files in temporary internet files directory. If you want these packages to be available for reinstallation at a later time, choose a more suitable directory (i.e. '''C:\cyginstall'''). Click '''Next'''.<br />
# Leave the default connection settings, and click '''Next'''<br />
# Choose a download site from the list, and click '''Next'''<br />
# In the ''Choose Packages'' screen, mark the Devel/Subversion package for installation, and click '''Next'''. The installer will proceed to download and install the selected packages.<br />
# Click '''Finish'''. The installer will close.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\cygwin\bin''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the KfW Binaries===<br />
If you are not currently using a pre-built version of KfW, you'll need to install one now in order to use Kerberized source control access.<br />
<br />
# Download a copy of the '''MIT Kerberos for Windows''' MSI installer [http://web.mit.edu/kerberos/dist/ here]. Run the MSI. <br />
# Accept the default install options.<br />
# Once setup completes, launch the '''Network Identity Manager (NIM)''' from the '''Kerberos for Windows''' folder in the '''Start Menu'''. By default, it should be configured for the ATHENA.MIT.EDU realm.<br />
# Create new credentials using you Athena username and password, and minimize NIM (this should hide it in the taskbar).<br />
<br />
===Installing PuTTY===<br />
PuTTY will provide the Kerberized SSH connection to our SVN repository.<br />
# Download a copy of the '''PuTTY with GSSAPI Extensions''' archive [http://www.sweb.cz/v_t_m/putty/PuTTY-0.58-GSSAPI-2005-07-24.zip here]. Note, there are several distributions of PuTTY that support Kerberos. You may choose the one that works best for you.<br />
# Unzip the archive to '''C:\tools\putty'''.<br />
# Launch '''C:\tools\putty\putty.exe'''.<br />
# Using the tree on the left, navigate to the '''Connection -> Data''' screen and enter your Athena username as the '''Auto-login username'''.<br />
# Open the '''Connection --> SSH --> Auth screen'''. In Authentication Methods, select '''Attempt "keyboard-interactive" auth (SSH-2)''' and '''Attempt Kerberos 5 GSSAPI/SSPI auth (SSH-2)'''. In Authentication parameters, select '''Allow Kerberos 5 ticket forwarding in GSSAPI/SSF''' and enter '''ATHENA.MIT.EDU''' as the '''Server realm'''.<br />
# Open the '''Session''' screen. Select (highlight) '''Default Settings''' from the list and click '''Save'''.<br />
# Close the PuTTY configuration windows.<br />
<br />
===Configuring SVN & PuTTY===<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\putty''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Under the '''System Variables''' list, add a '''SVN_SSH''' variable and give it the value '''plink.exe'''.<br />
# Create a directory to house a temporary SVN snapshot (i.e. '''C:\kfw\svn''').<br />
# Open the Command Prompt ('''Start -> Run -> cmd''') and type: <br />
#:<code>plink svn.mit.edu</code><br />
#:Please note, it's important to run plink once before attempting to use it with SVN, because when connecting to the server for the first time there will be interactive prompts that SVN does not support.<br />
# You may be prompted to add the server to your trusted list. If so, type '''y''' and hit '''Enter'''. Once the connection completes, hit '''Ctrl+C''' to end plink. It should ''not'' prompt you for a password at any time. If so, your Kerberos credentials have not been configured correctly or have expired.<br />
# Now that we've confirmed plink is working with a Kerberized connection, we need to checkout a snapshot of the SVN repository. In the Command Prompt type: <br />
#:<code>svn co svn+ssh://svn.mit.edu/krb5/trunk C:\kfw\svn</code><br />
If your SVN client configuration is properly setup, you should get a complete snapshot of the Krb5 trunk from the SVN repository, now located in C:\kfw\svn (or another directory of your choosing).<br />
<br />
===Installing CVS===<br />
# Download a copy of CVS that supports Kerberos authentication. While there doesn't appear to be a readily accessible CVS client distribution that supports Kerberos, you can use the cvs client found [http://web.mit.edu/rsilk/Public/Kerberos/Utils/cvs.exe here].<br />
# '''Move''' the file to your Cygwin binary directory (i.e.''' C:\tools\cygwin\bin''').<br />
<br />
==Configuring the Build Tools==<br />
Now that we have access to the repositories and have a snapshot of the SVN trunk, we need to install the required Microsoft libraries. We also need to install ActiveState Perl in order to run the build script. Finally, we need to install the remaining build tools required for documentation generation and packaging.<br />
<br />
===Configuring Microsoft Visual Studio===<br />
This guide assumes you have a working version of Microsoft Visual Studio 2005 Standard or later. Be sure to install the 64 bit libraries in addition to the standard 23 bit libraries if you intend to build for both architectures.<br />
<br />
===Installing the Microsoft Windows SDK===<br />
# Download a copy of the '''Microsoft Windows SDK''' (version 6.1 or later) [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en here].<br />
# Run the installer, accepting all default options (though you may need to select the 64 bit libraries if desired). <br />
<br />
===Installing ActiveState Perl===<br />
# Download a copy of '''ActiveState Perl''' (currently version 5.10.0.1005) [http://www.activestate.com/activeperl/downloads/ here]. <br />
# Run the installer, accepting all default options. This should automatically add the Perl directory to your system path.<br />
<br />
===Installing Microsoft HTML Help Workshop===<br />
# Download a copy of '''Microsoft HTML Help Workshop''' (currently version 1.3) [http://go.microsoft.com/fwlink/?linkid=14188 here].<br />
# Run the installer, accepting all default options. Please note, the installer may complain that you already have a newer version of Help Workshop installed. Ignore this error; the installer will complete successfully..<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\HTML Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the Windows Help Authoring Kit===<br />
Depending on your build configuration, you may also need the '''Windows Help Authoring Kit'''. <br />
# Download a copy [http://www.microsoft.com/downloads/details.aspx?FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098&displaylang=en here].<br />
# Run the installer, accepting all default options. <br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Fles\Help Workshop''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Doxygen===<br />
# Download a copy of the '''Doxygen distribution for Windows''' (currently version 1.5.9) [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc here].<br />
# Run the installer, accepting all default options. This should automatically add the Doxygen directory to your system path.<br />
<br />
===Installing WiX===<br />
# Download a copy of the Windows Install XML ('''WiX''') core toolset (currently version 2.0) [http://wix.sourceforge.net/downloadv2.html here].<br />
# Unzip the archive to '''C:\tools\wix'''.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\wix''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing NSIS===<br />
# Download a copy of the Nullsoft Scriptable Install System (NSIS - currently version 2.45) [http://nsis.sourceforge.net/Download here].<br />
# Run installer, accepting all default options.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\Program Files\NSIS''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing Windows Support Tools===<br />
On some machines you may need to install the '''Windows XP SP2 Support Tools''' package to get the '''filever.exe''' utility (which is currently required by the build script). <br />
# Download a copy of the '''Windows XP SP2 Support Tools''' package [http://www.microsoft.com/downloads/details.aspx?FamilyID=49ae8576-9bb9-4126-9761-ba8011fabf38&displaylang=en here].<br />
# Run the installer, accepting all default options.</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=1742Kerberos for Windows (KfW) 3.2.x Build Environment2009-07-24T19:50:39Z<p>Rsilk: </p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your KfW build environment.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
====Scripting Support====<br />
As mentioned above, the Cygwin distribution is used to provide source control access clients. The distribution also provides several tools required by the KfW build script. These include '''sed''', '''awk''', '''cat''', '''rm''', and '''find'''. The script itself is written in Perl designed to be executed by [http://www.activestate.com/activeperl/ ActiveState Perl]. <br />
<br />
====Compilers and Libraries====<br />
The KfW build script requires the '''Microsoft Visual Studio''' build tools to assemble the KfW binaries. The '''Microsoft Platform SDK''' is required to provide the necessary libraries for the KfW build. <br />
<br />
====Documentation====<br />
External documentation is automatically generated by [http://www.doxygen.org/ Doxygen] as part of the build script. <br />
<br />
====Installation Packagers====<br />
The build script uses both the Windows Installer XML ('''WiX''') toolset, as well as the Nullsoft Scriptable Install System ('''NSIS''').<br />
<br />
==Setting up Source Control Access==<br />
In order to access the SVN repository, we will need to install and configure Cygwin, the KFW binaries (for Kerberized source control access), PuTTY, and a custom build of the CVS client.<br />
<br />
Please note: Prior to testing any of the configurations described below, please be sure that you have been granted permissions to access the SVN and CVS repositories. PuTTY will throw unintelligible errors if permissions have not been set properly.<br />
<br />
===Installing and Cygwin and SVN===<br />
# Download a copy of the Cygwin installer [http://www.cygwin.com/ here]. Save it too your local machine (note the location, as this executable is required to make any modifications to you Cygwin distribution).<br />
# Run '''setup.exe'''<br />
# Click '''Next''' through the introduction and download screens, accepting the default values. <br />
# When prompted, change the root directory of the Cygwin installation to '''C:\tools\cygwin''', and click '''Next'''.<br />
# When choosing a directory to store the installation packages, you may accept the default, though this might place the files in temporary internet files directory. If you want these packages to be available for reinstallation at a later time, choose a more suitable directory (i.e. '''C:\cyginstall'''). Click '''Next'''.<br />
# Leave the default connection settings, and click '''Next'''<br />
# Choose a download site from the list, and click '''Next'''<br />
# In the ''Choose Packages'' screen, mark the Devel/Subversion package for installation, and click '''Next'''. The installer will proceed to download and install the selected packages.<br />
# Click '''Finish'''. The installer will close.<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\cygwin\bin''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
<br />
===Installing the KfW Binaries===<br />
If you are not currently using a pre-built version of KfW, you'll need to install one now in order to use Kerberized source control access.<br />
<br />
# Download a copy of the '''MIT Kerberos for Windows''' MSI installer [http://web.mit.edu/kerberos/dist/ here]. Run the MSI. <br />
# Accept the default install options.<br />
# Once setup completes, launch the '''Network Identity Manager (NIM)''' from the '''Kerberos for Windows''' folder in the '''Start Menu'''. By default, it should be configured for the ATHENA.MIT.EDU realm.<br />
# Create new credentials using you Athena username and password, and minimize NIM (this should hide it in the taskbar).<br />
<br />
===Installing PuTTY===<br />
PuTTY will provide the Kerberized SSH connection to our SVN repository.<br />
# Download a copy of the '''PuTTY with GSSAPI Extensions''' archive [http://www.sweb.cz/v_t_m/putty/PuTTY-0.58-GSSAPI-2005-07-24.zip here]. Note, there are several distributions of PuTTY that support Kerberos. You may choose the one that works best for you.<br />
# Unzip the archive to '''C:\tools\putty'''.<br />
# Launch '''C:\tools\putty\putty.exe'''.<br />
# Using the tree on the left, navigate to the '''Connection -> Data''' screen and enter your Athena username as the '''Auto-login username'''.<br />
# Open the '''Connection --> SSH --> Auth screen'''. In Authentication Methods, select '''Attempt "keyboard-interactive" auth (SSH-2)''' and '''Attempt Kerberos 5 GSSAPI/SSPI auth (SSH-2)'''. In Authentication parameters, select '''Allow Kerberos 5 ticket forwarding in GSSAPI/SSF''' and enter '''ATHENA.MIT.EDU''' as the '''Server realm'''.<br />
# Open the '''Session''' screen. Select (highlight) '''Default Settings''' from the list and click '''Save'''.<br />
# Close the PuTTY configuration windows.<br />
<br />
===Configuring SVN & PuTTY===<br />
# Open the '''Control Panel -> System''' applet. Click the '''Advanced''' tab and click '''Environment Variables'''.<br />
# Under the '''System Variables''' list, double-click '''Path''' (possibly listed as '''PATH'''), add a semicolon after the last entry and add '''C:\tools\putty''' to the variable. Click '''OK''' on each window to close it, accepting changes.<br />
# Under the '''System Variables''' list, add a '''SVN_SSH''' variable and give it the value '''plink.exe'''.<br />
# Create a directory to house a temporary SVN snapshot (i.e. '''C:\kfw\svn''').<br />
# Open the Command Prompt ('''Start -> Run -> cmd''') and type: <br />
#:<code>plink svn.mit.edu</code><br />
#:Please note, it's important to run plink once before attempting to use it with SVN, because when connecting to the server for the first time there will be interactive prompts that SVN does not support.<br />
# You may be prompted to add the server to your trusted list. If so, type '''y''' and hit '''Enter'''. Once the connection completes, hit '''Ctrl+C''' to end plink. It should ''not'' prompt you for a password at any time. If so, your Kerberos credentials have not been configured correctly or have expired.<br />
# Now that we've confirmed plink is working with a Kerberized connection, we need to checkout a snapshot of the SVN repository. In the Command Prompt type: <br />
#:<code>svn co svn+ssh://svn.mit.edu/krb5/trunk C:\kfw\svn</code><br />
If your SVN client configuration is properly setup, you should get a complete snapshot of the Krb5 trunk from the SVN repository, now located in C:\kfw\svn (or another directory of your choosing).<br />
<br />
===Installing CVS===<br />
# Download a copy of CVS that supports Kerberos authentication. While there doesn't appear to be a readily accessible CVS client distribution that supports Kerberos, you can use the cvs client found [http://web.mit.edu/rsilk/Public/Kerberos/Utils/cvs.exe here].<br />
# '''Move''' the file to your Cygwin binary directory (i.e.''' C:\tools\cygwin\bin''').</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Kerberos_for_Windows_(KfW)_3.2.x_Build_Environment&diff=1741Kerberos for Windows (KfW) 3.2.x Build Environment2009-07-24T18:52:44Z<p>Rsilk: New page: Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your KfW build environment. ==Overview== The ...</p>
<hr />
<div>Kerberos for Windows (KfW) is a specialized distribution of MIT Kerberos targeting the Windows platform. This document describes how to setup your KfW build environment.<br />
<br />
==Overview==<br />
The KfW build is automated by a set of Perl scripts and uses a combination of GNU and Microsoft tools to assemble the final build. In the following sections, we’ll outline the required components to run the build system. <br />
<br />
===Source Control Access===<br />
The Kerberos source tree is currently split over two source control systems. Current source is managed using Subversion (SVN), while legacy code is managed using the Concurrent Versioning System (CVS). The [http://www.cygwin.com/ Cygwin] distribution provides an SVN client that can be used with our Kerberized SVN repository.<br />
<br />
====Kerberized Access====<br />
Both source control systems support Kerberos authentication. In order to execute the KfW build script, you must use the Kerberos authentication mechanism as the script is not designed to prompt for passwords. Unfortunately, neither the CVS nor SVN client natively supports Kerberos authentication. <br />
<br />
In order to provide Kerberized access for SVN, you must use a Kerberized SSH client in conjunction with the standard SVN client included with Cygwin. (In this guide, we will use a special build of '''PuTTY''' to accomplish this.) <br />
<br />
In order to provide Kerberized access for CVS, we will use a custom build of the CVS client that supports Kerberos authentication.<br />
<br />
===Required Tools===<br />
The following tools are required to build KfW.<br />
<br />
====Scripting Support====<br />
As mentioned above, the Cygwin distribution is used to provide source control access clients. The distribution also provides several tools required by the KfW build script. These include sed, awk, cat, rm, and find. The script itself is written in Perl designed to be executed by ActiveState Perl. <br />
<br />
====Compilers and Libraries====<br />
The KfW build script requires the Microsoft Visual Studio build tools to assemble the KfW binaries. The Microsoft Platform SDK is required to provide the necessary libraries for the KfW build. <br />
<br />
====Documentation====<br />
External documentation is automatically generated by Doxygen as part of the build script. <br />
<br />
====Installation Packagers====<br />
The build script uses both the Windows Installer XML (WiX) toolset, as well as the Nullsoft Scriptable Install System (NSIS).</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Release_Meeting_Minutes/2009-06-23&diff=1284Release Meeting Minutes/2009-06-232009-06-24T13:16:54Z<p>Rsilk: New page: '''Meeting notes for 2009-06-23:''' 1.8 Feature List Discussion * Tentative feature plan found at http://k5wiki.kerberos.org/wiki/Release_1.8 * Do we have enough features planned for 1.8...</p>
<hr />
<div>'''Meeting notes for 2009-06-23:'''<br />
<br />
1.8 Feature List Discussion<br />
<br />
* Tentative feature plan found at http://k5wiki.kerberos.org/wiki/Release_1.8<br />
* Do we have enough features planned for 1.8 for it to be compelling for users to take the new version?<br />
* Tom sent the 1.8 proposal out on the mailing list, though it’s too early to have already gotten responses.<br />
* Discussed possible approaches for enabling administrators to specify enctypes.<br />
** Admin could modify defaults list or<br />
** We provide syntax for enabling/disabling enctypes based on functionality<br />
** For example, admin could say “I want all but SHA1” and it would go through and remove all enctypes that use SHA1. <br />
** Syntax would be limited. For instance we would not support complex conditions as in "Give me all enctypes that support ('this' AND 'this') OR 'this'".<br />
* Discussed improving the database abstraction layer<br />
** Database layer is currently too “blobby” – in order to change a field, you must read in all data, modify the desired field, and write the data back to the db. <br />
** Also due to blobs, logging only records that changes were made to a blob and does not indicate which specific field changed.<br />
** We want to add finer grain access to the db, such that specific fields can be changed without reading/writing entire blobs of data.<br />
** Discussed the possibility of adding a new API & backend while supporting the old API as this would allow code to be migrated incrementally. However, it was suggested that this might ultimately result in a poor API design; change to a new API should be all-or-nothing.<br />
** Discussed the possibility of improving the API to support finer grain control using the exiting db. However, this could hurt performance.<br />
** Will indicated that db improvements had been discussed previously at Sun. He will find the mail thread and forward it on for review.<br />
** Consensus was that rewriting the db layer would take too much time for the 1.8 release, though design work will be ongoing. <br />
* Tom discussed calling out items on the roadmap that have deliverables with specific deadlines/milestones (such as coming up with a design for the new db layer) that are not associated with a specific release.<br />
* Discussed reducing DNS dependence.<br />
** Still need to formulate a good plan to reduce DNS dependence.<br />
** Currently a global switch turns off all reverse DNS.<br />
** Allowing individual clients to disable DNS for specific realms could be a usability problem. <br />
** A possible solution would be to add additional information to the KDC, allowing it to specify capability to the client. Possibly as a new ticket flag in the TGT.<br />
* Discussed localization support for error messages.<br />
** Whether or not the Consortium provides localized messages, it would be nice to have a framework or support for providing localization.<br />
** Will is going to write up a proposal based on past work with Solaris.<br />
** Based on proposal we will decide whether this ends up in 1.8.<br />
<br />
Coding Styles and Transition Strategies<br />
<br />
* When and how should we perform the “grand reindent”?<br />
** We should do it as soon as possible instead of in stages.<br />
* What editor mode lines should be supported/included in formatted code files?<br />
** For now, include only Emacs mode lines. <br />
* What formatting rules should be strictly enforced?<br />
** We should enforce tab rules and trailing whitespace.<br />
* Discussed methods of enforcing style rules.<br />
** We could include a script that would run on SVN commit and check for formatting violations.<br />
** Files that have been reformatted and should therefore continue to comply with formatting would have a flag (using an Emacs mode line).<br />
** SVN would reject commits for files with the flag that do not comply.<br />
** If we must make a non-conforming change, then we could check in a change that turns off the flag. Then commit the violating code.<br />
** The script would most likely check the flag status of the file version already in the repository, so if the flag is accidentally deleted on a commit, the file would still be checked for style compliance.<br />
** We should also include a style-checking script that developers could run before trying to check in any code. Should be part of the standard development procedures to avoid sloppy code. <br />
** We could possibly add the script to “make check”. <br />
<br />
Proposal Policies<br />
<br />
* Proposals will be made on the wiki.<br />
* Discussions should be on the mailing list since not everyone has proper watches set on the wiki. <br />
* We will link to the pipermail archive of the discussion thread from the wiki.</div>Rsilkhttps://k5wiki.kerberos.org/wiki?title=Release_Meeting_Minutes&diff=1283Release Meeting Minutes2009-06-23T18:24:58Z<p>Rsilk: /* June 2009 */</p>
<hr />
<div>Public minutes of Kerberos Consortium Release Meetings arranged in reverse chronological order:<br />
<br />
==June 2009==<br />
<br />
[[Release Meeting Minutes/2009-06-23 | June 23, 2009 (2009-06-23)]]<br />
<br />
[[Release Meeting Minutes/2009-06-16 | June 16, 2009 (2009-06-16)]]<br />
<br />
==February 2009==<br />
<br />
[[Release Meeting Minutes/2009-02-03 | February 3, 2009 (2009-02-03)]]<br />
<br />
==January 2009==<br />
<br />
[[Release Meeting Minutes/2009-01-27 | January 27, 2009 (2009-01-27)]]<br />
<br />
[[Release Meeting Minutes/2009-01-13 | January 13, 2009 (2009-01-13)]]<br />
<br />
[[Release Meeting Minutes/2009-01-06 | January 6, 2009 (2009-01-06)]]<br />
<br />
==October 2008==<br />
<br />
[[Release Meeting Minutes/2008-10-14 | October 14, 2008 (2008-10-14)]]<br />
<br />
[[Release Meeting Minutes/2008-10-07 | October 7, 2008 (2008-10-07)]]<br />
<br />
==September 2008==<br />
<br />
[[Release Meeting Minutes/2008-09-30 | September 30, 2008 (2008-09-30)]]<br />
<br />
[[Release Meeting Minutes/2008-09-09 | September 9, 2008 (2008-09-09)]]<br />
<br />
[[Release Meeting Minutes/2008-09-02 | September 2, 2008 (2008-09-02)]]<br />
<br />
==August 2008==<br />
<br />
[[Release Meeting Minutes/2008-08-26 | August 26, 2008 (2008-08-26)]]<br />
<br />
[[Release Meeting Minutes/2008-08-04 | August 4, 2008 (2008-08-04)]]<br />
<br />
==July 2008==<br />
<br />
[[Release Meeting Minutes/2008-07-21 | July 21, 2008 (2008-07-21)]]<br />
<br />
[[Release Meeting Minutes/2008-07-14 | July 14, 2008 (2008-07-14)]]<br />
<br />
[[Release Meeting Minutes/2008-07-07 | July 7, 2008 (2008-07-07)]]<br />
<br />
==June 2008==<br />
<br />
[[Release Meeting Minutes/2008-06-30 | June 30, 2008 (2008-06-30)]]<br />
<br />
[[Release Meeting Minutes/2008-06-23 | June 23, 2008 (2008-06-23)]]<br />
<br />
[[Release Meeting Minutes/2008-06-16 | June 16, 2008 (2008-06-16)]]<br />
<br />
==May 2008==<br />
<br />
[[Release Meeting Minutes/2008-05-19 | May 19, 2008 (2008-05-19)]]<br />
<br />
[[Release Meeting Minutes/2008-05-12 | May 12, 2008 (2008-05-12)]]<br />
<br />
[[Release Meeting Minutes/2008-05-05 | May 5, 2008 (2008-05-05)]]<br />
<br />
==April 2008==<br />
[[Release Meeting Minutes/2008-04-28 | April 28, 2008 (2008-04-28)]]<br />
<br />
[[Release Meeting Minutes/2008-04-14 | April 14, 2008 (2008-04-14)]]<br />
<br />
==March 2008==<br />
[[Release Meeting Minutes/2008-03-31 |March 31, 2008 (2008-03-31)]]<br />
<br />
[[Release Meeting Minutes/2008-03-24 |March 24, 2008 (2008-03-24)]]<br />
<br />
[[Release Meeting Minutes/2008-03-17 |March 17, 2008 (2008-03-17)]]<br />
<br />
[[Release Meeting Minutes/2008-03-10 |March 10, 2008 (2008-03-10)]]<br />
<br />
==February 2008==<br />
[[Release Meeting Minutes/2008-02-04 |February 4, 2008 (2008-02-04)]]<br />
<br />
==January 2008==<br />
[[Release Meeting Minutes/2008-01-28 |January 28, 2008 (2008-01-28)]]<br />
<br />
[[Release Meeting Minutes/2008-01-07 |January 7, 2008 (2008-01-07)]]<br />
<br />
==December 2007==<br />
[[Release Meeting Minutes/2007-12-17|December 17, 2007 (2007-12-17)]]<br />
<br />
[[Release Meeting Minutes/2007-12-10|December 10, 2007 (2007-12-10)]]</div>Rsilk