<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.netlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ggamba</id>
	<title>NikiWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.netlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ggamba"/>
	<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php/Special:Contributions/Ggamba"/>
	<updated>2026-04-28T22:05:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=5065</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=5065"/>
		<updated>2008-06-11T20:42:01Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Branch, trunk, tags... */  Updated to 1.08&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout XWP &#039;&#039;&#039;version 1.0.8&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0006_1-0-8 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an initial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
In case of problems, verify if x:\CVS\xworkplace\bin\full directory has been created. If not, create it.&lt;br /&gt;
&lt;br /&gt;
You have also good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\bin\xwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to &#039;&#039;&#039;unlock&#039;&#039;&#039; the files first if you are copying over your running files. Check that XWP_UNLOCK_MODULES = YES line exists in CONFIG.IN (it&#039;s down near the bottom). The Unlock utility from the LxLite package is required. If XWP_UNLOCK_MODULES should not be enough, manually unlock XWPHOOK.DLL and XWPDAEMN.EXE.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4931</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4931"/>
		<updated>2007-12-19T19:52:27Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Compiling the beast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
In case of problems, verify if x:\CVS\xworkplace\bin\full directory has been created. If not, create it.&lt;br /&gt;
&lt;br /&gt;
You have also good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\bin\xwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to &#039;&#039;&#039;unlock&#039;&#039;&#039; the files first if you are copying over your running files. Check that XWP_UNLOCK_MODULES = YES line exists in CONFIG.IN (it&#039;s down near the bottom). The Unlock utility from the LxLite package is required. If XWP_UNLOCK_MODULES should not be enough, manually unlock XWPHOOK.DLL and XWPDAEMN.EXE.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4930</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4930"/>
		<updated>2007-12-19T19:47:06Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Compiling the beast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
In case of problems, verify if x:\CVS\xworkplace\bin\full directory has been created. If not, create it.&lt;br /&gt;
&lt;br /&gt;
You have also good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4929</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4929"/>
		<updated>2007-12-19T11:42:21Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Compiling the beast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
In case of problems, verify that x:\CVS\xworkplace\bin\full directory has been created. If not, create it.&lt;br /&gt;
&lt;br /&gt;
You have also good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4928</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4928"/>
		<updated>2007-12-19T11:41:55Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: Note about creation of \bin\full directory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
In case of problems, verify that x:\CVS\xworkplace\bin\full has been created. If not, create it.&lt;br /&gt;
&lt;br /&gt;
You have also good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4542</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4542"/>
		<updated>2007-03-29T09:45:15Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: Note about rc.exe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
* Several versions of rc.exe are around, and not all of them work well for XWP compilation. Good versions are for sure:&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.001 Jun 27 1996&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     Version 4.00.010 Apr 26 1999 &lt;br /&gt;
&lt;br /&gt;
which is essentially the same version as the above with some fixes done specifically for the Mozilla team. It was available at:&lt;br /&gt;
&lt;br /&gt;
     ftp://ftp.software.ibm.com/ps/products/warpzilla/os2tk40rc.zip&lt;br /&gt;
&lt;br /&gt;
Finally, someone successfully replaced rc.exe from IBM with the one from the Open Watcom compiler, wrc.exe, that accepts much longer command lines.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4411</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4411"/>
		<updated>2007-01-20T16:56:53Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: www.netlabs.org -&amp;gt; cvs.netlabs.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4390</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4390"/>
		<updated>2007-01-11T13:16:00Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: Updated translators section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.  Special thanks to Steven Levine for reviewing, correcting and enhancing the text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(xwphelpers repository doesn&#039;t have &amp;quot;sandboxes&amp;quot; as there is nothing inside NLS-related). &lt;br /&gt;
Taking XWorkplace version 1.0.7 as sample: I copy the \xworkplace_branch directory as \xworkplace_107, then do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0005_1-0-7&lt;br /&gt;
&lt;br /&gt;
in \xworkplace_107 and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0016_xwp1-0-7&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.  Since you can not commit changes if you have checked out a release, it is necessary to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
I can now compare (with [http://www.ecomstation.it/ecsoft2/prog.php?progid=827 ddiff] and [http://www.ecomstation.it/ecsoft2/prog.php?progid=1370 kdiff]) \xworkplace_107\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_107\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_107\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0003-1-0-7&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4389</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4389"/>
		<updated>2007-01-11T10:13:10Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: updated tags for 1.0.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.7&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0005_1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r  pr_0016_xwp1-0-7 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(I don&#039;t need different &amp;quot;sandboxes&amp;quot; of xwphelpers repositories). I routinely update the branch. When version xyz of XWP is released, I copy the \xworkplace_branch directory as \xworkplace_xyz, then do:&lt;br /&gt;
&lt;br /&gt;
     cd \xwp_work&lt;br /&gt;
     set R=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
     cvs -d %R% checkout -r pr_0002-1-0-4 .&lt;br /&gt;
     cd 039&lt;br /&gt;
     cvs update -A -r branch-1-0&lt;br /&gt;
&lt;br /&gt;
This way I check out XWP sources using the release tag while keeping the Italian NLS subdirectory tree at branch level.&lt;br /&gt;
&lt;br /&gt;
I then compare (with ddiff and gfc) \xworkplace_xyz\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_xyz\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_xyz\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0002-1-0-6&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;br /&gt;
&lt;br /&gt;
===Checkouts for translators (SHL version) ===&lt;br /&gt;
&lt;br /&gt;
Since you can not commit changes if you have checked out a release, translators need to do a bit of extra work to set up their sandboxes.  They need to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
To does this for the &#039;&#039;&#039;1.0.6 release&#039;&#039;&#039;, use:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4270</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4270"/>
		<updated>2006-12-10T10:29:19Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Compiling the beast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
   E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
   SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(I don&#039;t need different &amp;quot;sandboxes&amp;quot; of xwphelpers repositories). I routinely update the branch. When version xyz of XWP is released, I copy the \xworkplace_branch directory as \xworkplace_xyz, then do:&lt;br /&gt;
&lt;br /&gt;
     cd \xwp_work&lt;br /&gt;
     set R=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
     cvs -d %R% checkout -r pr_0002-1-0-4 .&lt;br /&gt;
     cd 039&lt;br /&gt;
     cvs update -A -r branch-1-0&lt;br /&gt;
&lt;br /&gt;
This way I check out XWP sources using the release tag while keeping the Italian NLS subdirectory tree at branch level.&lt;br /&gt;
&lt;br /&gt;
I then compare (with ddiff and gfc) \xworkplace_xyz\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_xyz\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_xyz\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0002-1-0-6&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;br /&gt;
&lt;br /&gt;
===Checkouts for translators (SHL version) ===&lt;br /&gt;
&lt;br /&gt;
Since you can not commit changes if you have checked out a release, translators need to do a bit of extra work to set up their sandboxes.  They need to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
To does this for the &#039;&#039;&#039;1.0.6 release&#039;&#039;&#039;, use:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4269</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4269"/>
		<updated>2006-12-10T10:28:50Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Branch, trunk, tags... */  missing dots!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve both the XWP Sources and XWP Helpers from the Netlabs&#039; CVS server.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) Create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Sources repository at Netlabs.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded for this repository.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This command will retrieve the most recent XWP sources from the CVS repository for the XWP 1.x branch into the current subdirectory.  Cvs calls subdirectory tree and its contents a &#039;&#039;sandbox&#039;&#039;.  More on branches and tags below.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWP helpers:&lt;br /&gt;
&lt;br /&gt;
1) First, do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
This is the location of the XWP Helpers repository.&lt;br /&gt;
&lt;br /&gt;
2) Create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to this subdirectory.&lt;br /&gt;
&lt;br /&gt;
3) If this is first time you have used the XWP Sources respository, you need to log in.  Do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password.  Cvs remembers your login information in %HOME%\.cvspass, so you only need to login if this information is not already recorded.&lt;br /&gt;
&lt;br /&gt;
4) Do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You have now downloaded all the files you need to compile the latest XWP branch stuff.&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with the trunk, or compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for each version you are working with.  This will save you time. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
* Your CVS root folder &lt;br /&gt;
** XWP Sources branch&lt;br /&gt;
** XWP Sources trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
If disk space is a problem, you can use a single set of sandboxes and switch the sandbox content as needed.  More on this below.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, checkout with no tag using:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
in both the XWP Sources and the XWP Helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;1.0 branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources and the XWP helpers sandbox directories.&lt;br /&gt;
&lt;br /&gt;
To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (the latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6 .&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6 .&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout from CVS, you can use the &#039;&#039;cvs status -v filename&#039;&#039; command to determine which tags exist. For example, run:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v -l makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory to see the existing tags for the XWorkplace package.  This works because the developers always tag makefile for every release even if this file has not changed.&lt;br /&gt;
&lt;br /&gt;
All the above samples are for an intiial checkout from the CVS server.  This means that you are downloading from CVS into an empty directory.&lt;br /&gt;
&lt;br /&gt;
Once you have done an initial checkout of a branch or the trunk, you usually want to use the &amp;quot;update&amp;quot; command to download files modified by others instead of the &amp;quot;checkout&amp;quot; command.  The update command is faster than the checkout command because it generally does a lot less work.  Run the command:&lt;br /&gt;
&lt;br /&gt;
     cvs upd&lt;br /&gt;
&lt;br /&gt;
in each subdirectory to be updated.  It is safe to use this command even if you have changes in progress.  Cvs will not overwrite your uncommited changes.&lt;br /&gt;
&lt;br /&gt;
When working with an existing sandbox, there&#039;s no need to set CVSROOT or USER.  Cvs records this data in control files within the sandbox.&lt;br /&gt;
&lt;br /&gt;
You can switch the content of an existing sandbox to a different release or branch.&lt;br /&gt;
To switch your sandbox directories to the 1.0.6 release, the commands would be:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;br /&gt;
&lt;br /&gt;
Tags can be confusing to those new to CVS.  There are revision tags and branch tags.  They often look the same, but they do not work the same.  A revision tag refers to a specific file.  A branch tag refers to the newest file on the branch.  XWP releases are tagged with revision tags.&lt;br /&gt;
&lt;br /&gt;
If you checkout using a revision tag, you can not commit changes.  If you checkout using a branch tag, you can commit changes, if you have permission to do commits.  The trunk is effectively an unnamed branch.  The XWP naming convention is that branch tags always contain the word branch in the tag name.  If you are not sure if a tag is a branch tag or a revision tag, use the cvs status command.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.  If you are using some other Toolkit, be sure to backlevel emitc.dll to the OS/2 Warp 4.0 Toolkit version.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good chance to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN.  It&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take only branch diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do the diffs for the XWP Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
&lt;br /&gt;
As a sample for people interested in translating XWP to their own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(I don&#039;t need different &amp;quot;sandboxes&amp;quot; of xwphelpers repositories). I routinely update the branch. When version xyz of XWP is released, I copy the \xworkplace_branch directory as \xworkplace_xyz, then do:&lt;br /&gt;
&lt;br /&gt;
     cd \xwp_work&lt;br /&gt;
     set R=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
     cvs -d %R% checkout -r pr_0002-1-0-4 .&lt;br /&gt;
     cd 039&lt;br /&gt;
     cvs update -A -r branch-1-0&lt;br /&gt;
&lt;br /&gt;
This way I check out XWP sources using the release tag while keeping the Italian NLS subdirectory tree at branch level.&lt;br /&gt;
&lt;br /&gt;
I then compare (with ddiff and gfc) \xworkplace_xyz\001 directory with the content of \xworkplace_branch\001, and update \xworkplace_xyz\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_xyz\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0002-1-0-6&lt;br /&gt;
&lt;br /&gt;
If I need to make some additional updates, this tag allows me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing the config.in file in the appropriate way, I compile the translated resource with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;br /&gt;
&lt;br /&gt;
===Checkouts for translators (SHL version) ===&lt;br /&gt;
&lt;br /&gt;
Since you can not commit changes if you have checked out a release, translators need to do a bit of extra work to set up their sandboxes.  They need to checkout the branch and then backout any changes that were made since the version was released.&lt;br /&gt;
&lt;br /&gt;
To does this for the &#039;&#039;&#039;1.0.6 release&#039;&#039;&#039;, use:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP sources directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
     cvs update -j pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the XWP helpers directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4266</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4266"/>
		<updated>2006-12-09T15:51:28Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Branch, trunk, tags... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in xworkplace directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the xwphelpers one. Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command will tell you which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
All the above samples are to checkout from the CVS server, that means that you are importing from CVS from scratch, in an empty directory. &lt;br /&gt;
&lt;br /&gt;
Since you have done a checkout, you can use the &amp;quot;update&amp;quot; command instead that the &amp;quot;checkout&amp;quot; one. The last sample would become:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take branch only diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do it for the Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As a sample for people interested in translate XWP to his own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following one is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(I don&#039;t need different &amp;quot;sandboxes&amp;quot; of xwphelpers repository). I routinely update the branch. When version xyz of XWP is released, I copy the \xworkplace_branch directory as \xworkplace_xyz, then do:&lt;br /&gt;
&lt;br /&gt;
     cd \xwp_work&lt;br /&gt;
     set R=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
     cvs -d %R% checkout -r pr_0002-1-0-4 .&lt;br /&gt;
     cd 039&lt;br /&gt;
     cvs update -A -r branch-1-0&lt;br /&gt;
&lt;br /&gt;
In this way I checkout XWP sources using the release tag while keeping Italian NLS subdirectory tree at branch level.&lt;br /&gt;
&lt;br /&gt;
I then compare (with ddiff and gfc) \xworkplace_xyz\001 directory with content of \xworkplace_branch\001, and update \xworkplace_xyz\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_xyz\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0002-1-0-6&lt;br /&gt;
&lt;br /&gt;
If I need to make some follow on updates, this tag allow me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing config.in file in the appropriate way, with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
I compile the translated resources. In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4265</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4265"/>
		<updated>2006-12-09T15:49:20Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Notes for translators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in xworkplace directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the xwphelpers one. Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command will tell you which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
All the above samples are to checkout from the CVS server, that means that you are importing from CVS from scratch, in an empty directory. &lt;br /&gt;
&lt;br /&gt;
Since you have done a checkout, you can use the &amp;quot;update&amp;quot; command instead that the &amp;quot;checkout&amp;quot; one. The last sample would become:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take branch only diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do it for the Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As a sample for people interested in translate XWP to his own language, here is explained how the Italian translation of XWP is maintained.&lt;br /&gt;
The following one is the folder structure I use:&lt;br /&gt;
&lt;br /&gt;
     \Netlabs_CVS&lt;br /&gt;
     \Netlabs_CVS\xwphelpers&lt;br /&gt;
     \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
     \Netlabs_CVS\xworkplace_105&lt;br /&gt;
     \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(I don&#039;t need different &amp;quot;sandboxes&amp;quot; of xwphelpers repository). I routinely update the branch. When version xyz of XWP is released, I copy the \xworkplace_branch directory as \xworkplace_xyz, then do:&lt;br /&gt;
&lt;br /&gt;
     cd \xwp_work&lt;br /&gt;
     set R=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
     cvs -d %R% checkout -r pr_0002-1-0-4 .&lt;br /&gt;
     cd 039&lt;br /&gt;
     cvs update -A -r branch-1-0&lt;br /&gt;
&lt;br /&gt;
In this way I checkout XWP sources using the release tag while keeping Italian NLS subdirectory tree at branch level.&lt;br /&gt;
&lt;br /&gt;
I then compare (with ddiff and gfc) \xworkplace_xyz\001 directory with content of \xworkplace_branch\001, and update \xworkplace_xyz\039 as needed. Once everything has been updated and tested, I commit my changes with &lt;br /&gt;
&lt;br /&gt;
     cvs commit&lt;br /&gt;
&lt;br /&gt;
from \xworkplace_xyz\039 directory and then, from the same directory, create a release tag for the Italian NLS subdirectory tree:&lt;br /&gt;
&lt;br /&gt;
     cvs tag ggamba_0002-1-0-6&lt;br /&gt;
&lt;br /&gt;
If I need to make some follow on updates, this tag allow me to recreate the sandbox.&lt;br /&gt;
&lt;br /&gt;
Finally, after editing config.in file in the appropriate way, with the command:&lt;br /&gt;
&lt;br /&gt;
     nmake nls&lt;br /&gt;
&lt;br /&gt;
I compile the translated resources. In addition, &amp;quot;nmake wpi_nls&amp;quot; will create the archive in the release directory.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4264</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4264"/>
		<updated>2006-12-09T15:28:45Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: create diff files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in xworkplace directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the xwphelpers one. Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command will tell you which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
All the above samples are to checkout from the CVS server, that means that you are importing from CVS from scratch, in an empty directory. &lt;br /&gt;
&lt;br /&gt;
Since you have done a checkout, you can use the &amp;quot;update&amp;quot; command instead that the &amp;quot;checkout&amp;quot; one. The last sample would become:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
If you modify something in the source and you want to send the developer the diffs, you can easily create them with CVS with the following command:&lt;br /&gt;
&lt;br /&gt;
     cvs -z3 diff -u &amp;gt;description_of_changes.diff&lt;br /&gt;
&lt;br /&gt;
from the root of the sandbox is my preference.  gnupatch will accept these&lt;br /&gt;
without issues. Attach the .diff file in an email and send it to Paul Ratcliffe, the code maintainer.&lt;br /&gt;
&lt;br /&gt;
You should ideally do this for both the branch and the trunk, but currently Paul will take branch only diffs. Often they will be the same anyway.&lt;br /&gt;
&lt;br /&gt;
You need to remember to do it for the Helpers as well if you modify something there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4263</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4263"/>
		<updated>2006-12-09T15:15:50Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Branch, trunk, tags... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout &#039;&#039;&#039;version 1.0.6&#039;&#039;&#039; (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in xworkplace directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the xwphelpers one. Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command will tell you which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile &lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
All the above samples are to checkout from the CVS server, that means that you are importing from CVS from scratch, in an empty directory. &lt;br /&gt;
&lt;br /&gt;
Since you have done a checkout, you can use the &amp;quot;update&amp;quot; command instead that the &amp;quot;checkout&amp;quot; one. The last sample would become:&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
     cvs upd -A -rpr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4262</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4262"/>
		<updated>2006-12-09T15:09:44Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* Branch, trunk, tags... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout version 1.0.6 (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
in xworkplace directory and &lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0015_xwp1-0-6&lt;br /&gt;
&lt;br /&gt;
in the xwphelpers one. Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command you can easily see which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile&lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4261</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4261"/>
		<updated>2006-12-09T15:07:16Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout version 1.0.6 (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
Once the first checkout from CVS is done, the &#039;&#039;cvs status -v filename&#039;&#039; command you can easily see which tag exist; for example, running:&lt;br /&gt;
&lt;br /&gt;
     cvs status -v makefile&lt;br /&gt;
&lt;br /&gt;
from the x:\cvs\xworkplace directory will tell you which are the existing tags for the XWorkplace package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling the beast ==&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is recommended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to compile XWP.&lt;br /&gt;
&lt;br /&gt;
1) first of all, adjust x:\CVS\xworkplace\config.in to your needs;&lt;br /&gt;
2) then, from x:\CVS\xworkplace\ run &lt;br /&gt;
&lt;br /&gt;
     nmake dep&lt;br /&gt;
&lt;br /&gt;
If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
&lt;br /&gt;
3) After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes for contributors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4258</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4258"/>
		<updated>2006-12-09T14:59:50Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: reordered paragraph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
1) create the CVS root folder (e.g. x:\CVS) and then do:&lt;br /&gt;
&lt;br /&gt;
     SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace), change to it and do:&lt;br /&gt;
&lt;br /&gt;
     SET USER=guest&lt;br /&gt;
&lt;br /&gt;
3) from the same directory, do:&lt;br /&gt;
&lt;br /&gt;
     CVS login&lt;br /&gt;
&lt;br /&gt;
and enter &amp;quot;readonly&amp;quot; when you are prompted for password;&lt;br /&gt;
&lt;br /&gt;
4) do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need to retrieve the XWorkplace helpers:&lt;br /&gt;
&lt;br /&gt;
1) go again in your CVS root folder (e.g. x:\CVS) and do:&lt;br /&gt;
&lt;br /&gt;
     CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&lt;br /&gt;
&lt;br /&gt;
2) create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers), change to xwphelpers and do:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the latest XWP branch stuff!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Branch, trunk, tags...===&lt;br /&gt;
&lt;br /&gt;
As you sooner or later will like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout .&lt;br /&gt;
&lt;br /&gt;
both for xwp and xwp helpers.&lt;br /&gt;
&lt;br /&gt;
To checkout the &#039;&#039;&#039;branch&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag:&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r branch-1-0 .&lt;br /&gt;
&lt;br /&gt;
again both for xwp and xwp helpers. To checkout version 1.0.6 (latest released version):&lt;br /&gt;
&lt;br /&gt;
     cvs checkout -r pr_0004_1-0-6&lt;br /&gt;
&lt;br /&gt;
=== The compilation environment ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for contributors===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4255</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4255"/>
		<updated>2006-12-09T14:34:45Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Please note that this is not the &amp;quot;official&amp;quot; how-to, but just a collection of suggestions an tips harvested from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS and from the XWP mailing lists. The &amp;quot;official&amp;quot; how-to remains the progref.inf file included in the XWP&#039;s sources.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Getting sources from CVS ===&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a [http://www.xworkplace.org/cvs.html working CVS setup], do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &lt;br /&gt;
&lt;br /&gt;
 SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&lt;br /&gt;
&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do&lt;br /&gt;
&lt;br /&gt;
 SET USER=guest&lt;br /&gt;
&lt;br /&gt;
* from the same directory, do &lt;br /&gt;
&lt;br /&gt;
 CVS login&lt;br /&gt;
&lt;br /&gt;
enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &lt;br /&gt;
&lt;br /&gt;
 cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget the last dot! This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP branch stuff. As you sooner or later could like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
** WarpIn&lt;br /&gt;
&lt;br /&gt;
XWP branch requires the XWP Helpers branch, XWP trunk requires the XWP Helpers trunk and WarpIn, just as a note, requires the XWP Helpers trunk. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag, that is: &amp;quot;cvs checkout .&amp;quot;&lt;br /&gt;
* To checkout the &#039;&#039;&#039;branches&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag: &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
* If you want to build &#039;&#039;&#039;latest public version&#039;&#039;&#039; then checkout using the release tags, that is for XWP: &amp;quot;cvs checkout -r pr_0002_1-0-4 .&amp;quot; and for XWP Helpers: &amp;quot;cvs checkout -r pr_0007_xwp1-0-4 .&amp;quot;&lt;br /&gt;
If you want to modify (NLS) things, then checkout using the branch tag. You ought to set your own release tags for the NLS stuff when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The compilation environment ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for contributors===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notes for translators===&lt;br /&gt;
As told before, we need different &amp;quot;sandboxes&amp;quot; for the different XWP releases.&lt;br /&gt;
The following one, for example, is the folder structure I use for the Italian translation of XWP:&lt;br /&gt;
&lt;br /&gt;
 \Netlabs_CVS&lt;br /&gt;
 \Netlabs_CVS\xwphelpers&lt;br /&gt;
 \Netlabs_CVS\xworkplace_branch&lt;br /&gt;
 \Netlabs_CVS\xworkplace_105&lt;br /&gt;
 \Netlabs_CVS\xworkplace_106&lt;br /&gt;
&lt;br /&gt;
(to build the NLS package, I don&#039;t need &amp;quot;sandboxes&amp;quot; of xwphelpers repository)&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4212</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4212"/>
		<updated>2006-11-02T16:14:37Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of IMAP server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
- Download the IMAP server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the INBOX files for all the users, for example &#039;&#039;c:\var\mail&#039;&#039;, and one directory for each user, for example &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; for each user; user name will be &#039;&#039;username&#039;&#039; as in &#039;&#039;c:\home\default\mail\username&#039;&#039; and password will be what you like (it is just to connect to the local imapd server); home directory will be &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location;&lt;br /&gt;
&lt;br /&gt;
- for each user, run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/c:\var\mail\username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then start inetd. Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;br /&gt;
&lt;br /&gt;
Server is up and running! Above configuration was tested with both Thunderbird and Squirrelmail. If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
== Folders within other folders ==&lt;br /&gt;
&lt;br /&gt;
For what I was able to understand, Inbox can&#039;t contain subfolders, nor can Trash, Sent or Drafts folders, while folders created by users can contain other folders within them, but not messages.&lt;br /&gt;
&lt;br /&gt;
Creating folders within folders requires manual intervention on the server. Imagine you just started the server and connected with an IMAP client. In &#039;&#039;c:\home\default\mail\username&#039;&#039; you will have the following files:&lt;br /&gt;
&lt;br /&gt;
  Drafts&lt;br /&gt;
  Sent&lt;br /&gt;
  Trash &lt;br /&gt;
  mailbox.lst&lt;br /&gt;
&lt;br /&gt;
To have a &amp;quot;Friends&amp;quot; folder containing subfolders, you need to &lt;br /&gt;
&lt;br /&gt;
- manually create &#039;&#039;c:\home\default\mail\username\Friends&#039;&#039; folder and&lt;br /&gt;
&lt;br /&gt;
- add &#039;&#039;Friends&#039;&#039; to mailbox.lst file&lt;br /&gt;
&lt;br /&gt;
Then, with Thunderbird you will be able to create subfolders in &amp;quot;Friends&amp;quot; folder. Selecting &amp;quot;Friends&amp;quot; you will get an error message: &lt;br /&gt;
&lt;br /&gt;
  SELECT failed: permissione denied: Friends&lt;br /&gt;
&lt;br /&gt;
but opening the menu you can safely choose &amp;quot;New subfolder...&amp;quot;. &#039;&#039;&#039;Note&#039;&#039;&#039;: you will not be able to move messages into &amp;quot;Friends&amp;quot;, but will be able to move messages to &amp;quot;Friends&amp;quot; subfolder(s). I&#039;m currently not able to delete folders from Thunderbird: you will have to do that manually.&lt;br /&gt;
&lt;br /&gt;
I&#039;m still trying to understand how to automatically fetch mail from external pop servers and append to the INBOX file.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4211</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4211"/>
		<updated>2006-11-02T16:13:54Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* How to install and configure the port of IMAP server for Os/2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of IMAP server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
- Download the IMAP server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the INBOX files for all the users, for example &#039;&#039;c:\var\mail&#039;&#039;, and one directory for each user, for example &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; for each user; user name will be &#039;&#039;username&#039;&#039; as in &#039;&#039;c:\home\default\mail\username&#039;&#039; and password will be what you like (it is just to connect to the local imapd server); home directory will be &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location;&lt;br /&gt;
&lt;br /&gt;
- for each user, run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/c:\var\mail\username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then start inetd. Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;br /&gt;
&lt;br /&gt;
Server is up and running! Above configuration was tested with both Thunderbird and Squirrelmail. If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
== Folders within other folders ==&lt;br /&gt;
&lt;br /&gt;
For what I was able to understand, Inbox can&#039;t contain subfolders, nor can Trash, Sent or Drafts folders, while folders created by users can contain other folders within them, but not messages.&lt;br /&gt;
&lt;br /&gt;
Creating folders within folders requires manual intervention on the server. Imagine you just started the server and connected with an IMAP client. In &#039;&#039;c:\home\default\mail\username&#039;&#039; you will have the following files:&lt;br /&gt;
&lt;br /&gt;
  Drafts&lt;br /&gt;
  Sent&lt;br /&gt;
  Trash &lt;br /&gt;
  mailbox.lst&lt;br /&gt;
&lt;br /&gt;
To have a &amp;quot;Friends&amp;quot; folder containing subfolders, you need to &lt;br /&gt;
&lt;br /&gt;
- manually create &#039;&#039;c:\home\default\mail\username\Friends&#039;&#039; folder and&lt;br /&gt;
&lt;br /&gt;
- add &#039;&#039;Friends&#039;&#039; to mailbox.lst file&lt;br /&gt;
&lt;br /&gt;
Then, with Thunderbird you will be able to create subfolders in &amp;quot;Friends&amp;quot; folder. Selecting &amp;quot;Friends&amp;quot; you will get an error message: &lt;br /&gt;
&lt;br /&gt;
  SELECT failed: permissione denied: Friends&lt;br /&gt;
&lt;br /&gt;
but opening the menu you can safely choose &amp;quot;New subfolder...&amp;quot;. &#039;&#039;&#039;Note&#039;&#039;&#039;: you will not be able to move messages into &amp;quot;Friends&amp;quot;, but will be able to move messages to &amp;quot;Friends&amp;quot; subfolder(s). I&#039;m currently not able to delete folders from Thunderbird: you will have to do that manually.&lt;br /&gt;
&lt;br /&gt;
I&#039;m still trying to understand how to automatically fetch mail from external pop servers and append them to the INBOX file.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4210</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4210"/>
		<updated>2006-11-02T12:52:48Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the INBOX files for all the users, for example &#039;&#039;c:\var\mail&#039;&#039;, and one directory for each user, for example &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; for each user; user name will be &#039;&#039;username&#039;&#039; as in &#039;&#039;c:\home\default\mail\username&#039;&#039; and password will be what you like (it is just to connect to the local imapd server); home directory will be &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location;&lt;br /&gt;
&lt;br /&gt;
- for each user, run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/c:\var\mail\username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then start inetd. Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;br /&gt;
&lt;br /&gt;
Server is up and running! Above configuration was tested with both Thunderbird and Squirrelmail. If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
== Folders within other folders ==&lt;br /&gt;
&lt;br /&gt;
For what I was able to understand, Inbox can&#039;t contain subfolders, nor can Trash, Sent or Drafts folders, while folders created by users can contain other folders within them, but not messages.&lt;br /&gt;
&lt;br /&gt;
Creating folders within folders requires manual intervention on the server. Imagine you just started the server and connected with an IMAP client. In &#039;&#039;c:\home\default\mail\username&#039;&#039; you will have the following files:&lt;br /&gt;
&lt;br /&gt;
  Drafts&lt;br /&gt;
  Sent&lt;br /&gt;
  Trash &lt;br /&gt;
  mailbox.lst&lt;br /&gt;
&lt;br /&gt;
To have a &amp;quot;Friends&amp;quot; folder containing subfolders, you need to &lt;br /&gt;
&lt;br /&gt;
- manually create &#039;&#039;c:\home\default\mail\username\Friends&#039;&#039; folder and&lt;br /&gt;
&lt;br /&gt;
- add &#039;&#039;Friends&#039;&#039; to mailbox.lst file&lt;br /&gt;
&lt;br /&gt;
Then, with Thunderbird you will be able to create subfolders in &amp;quot;Friends&amp;quot; folder. Selecting &amp;quot;Friends&amp;quot; you will get an error message: &lt;br /&gt;
&lt;br /&gt;
  SELECT failed: permissione denied: Friends&lt;br /&gt;
&lt;br /&gt;
but opening the menu you can safely choose &amp;quot;New subfolder...&amp;quot;. &#039;&#039;&#039;Note&#039;&#039;&#039;: you will not be able to move messages into &amp;quot;Friends&amp;quot;, but will be able to move messages to &amp;quot;Friends&amp;quot; subfolder(s). I&#039;m currently not able to delete folders from Thunderbird: you will have to do that manually.&lt;br /&gt;
&lt;br /&gt;
I&#039;m still trying to understand how to automatically fetch mail from external pop servers and append them to the INBOX file.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4209</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4209"/>
		<updated>2006-11-02T12:51:31Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: note about subfolders&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the INBOX files for all the users, for example &#039;&#039;c:\var\mail&#039;&#039;, and one directory for each user, for example &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; for each user; user name will be &#039;&#039;username&#039;&#039; as in &#039;&#039;c:\home\default\mail\username&#039;&#039; and password will be what you like (it is just to connect to the local imapd server); home directory will be &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location;&lt;br /&gt;
&lt;br /&gt;
- for each user, run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/c:\var\mail\username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then start inetd. Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;br /&gt;
&lt;br /&gt;
Server is up and running! If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
== Folders within other folders ==&lt;br /&gt;
&lt;br /&gt;
For what I was able to understand, Inbox can&#039;t contain subfolders, nor can Trash, Sent or Drafts folders, while folders created by users can contain other folders within them, but not messages.&lt;br /&gt;
&lt;br /&gt;
Creating folders within folders requires manual intervention on the server. Imagine you just started the server and connected with an IMAP client. In &#039;&#039;c:\home\default\mail\username&#039;&#039; you will have the following files:&lt;br /&gt;
&lt;br /&gt;
  Drafts&lt;br /&gt;
  Sent&lt;br /&gt;
  Trash &lt;br /&gt;
  mailbox.lst&lt;br /&gt;
&lt;br /&gt;
To have a &amp;quot;Friends&amp;quot; folder containing subfolders, you need to &lt;br /&gt;
&lt;br /&gt;
- manually create &#039;&#039;c:\home\default\mail\username\Friends&#039;&#039; folder and&lt;br /&gt;
&lt;br /&gt;
- add &#039;&#039;Friends&#039;&#039; to mailbox.lst file&lt;br /&gt;
&lt;br /&gt;
Then, with Thunderbird you will be able to create subfolders in &amp;quot;Friends&amp;quot; folder. Selecting &amp;quot;Friends&amp;quot; you will get an error message: &lt;br /&gt;
&lt;br /&gt;
  SELECT failed: permissione denied: Friends&lt;br /&gt;
&lt;br /&gt;
but opening the menu you can safely choose &amp;quot;New subfolder...&amp;quot;. &#039;&#039;&#039;Note&#039;&#039;&#039;: you will not be able to move messages into &amp;quot;Friends&amp;quot;, but will be able to move messages to &amp;quot;Friends&amp;quot; subfolder(s). I&#039;m currently not able to delete folders from Thunderbird: you will have to do that manually.&lt;br /&gt;
&lt;br /&gt;
I&#039;m still trying to understand how to automatically fetch mail from external pop servers and append them to the INBOX file.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4208</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4208"/>
		<updated>2006-11-02T12:30:59Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* How to install and configure the port of Imapd server for Os/2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the INBOX files for all the users, for example &#039;&#039;c:\var\mail&#039;&#039;, and one directory for each user, for example &#039;&#039;c:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; for each user; user name will be &#039;&#039;username&#039;&#039; as in &#039;&#039;c:\home\default\mail\username&#039;&#039; and password will be what you like (it is just to connect to the local imapd server); home directory will be &#039;&#039;:\home\default\mail\username&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location;&lt;br /&gt;
&lt;br /&gt;
- run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/mail\username&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and start inetd (*). Server is up and running! If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(*) Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4207</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4207"/>
		<updated>2006-10-26T13:51:15Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere;&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the email files for the user &#039;&#039;username&#039;&#039;, for example c:\home\default\mail\username&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039;; user name will be &#039;&#039;username&#039;&#039; and password will be what you like (it is just to connect to the imapd server); when asked for home directory, specify the previously created one (in the sample: &amp;quot;c:\home\default\mail\username&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location; comment the &amp;quot;set mailspool&amp;quot; line&lt;br /&gt;
&lt;br /&gt;
- run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/mail\username\inbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and start inetd (*). Server is up and running! If you connect with Thunderbird, you must turn off the use of the &amp;quot;IDLE&amp;quot; command. You can turn off idle by de-selecting &amp;quot;Use IDLE command&amp;quot; in Thunderbird&#039;s advanced settings box of your e-mail account&#039;s server settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(*) Note: &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; run inetd from the same directory where imapd.exe is! If you look at the window where inetd is running, for any imapd command received you should see only a single line like: &lt;br /&gt;
&lt;br /&gt;
  spawnning imapd socket=xxxx&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4206</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4206"/>
		<updated>2006-10-26T13:19:49Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A small how to to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DRAFT and INCOMPLETE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the email files, for example c:\home\default\mail\username&lt;br /&gt;
&lt;br /&gt;
- in \MPTN\ETC create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file (create it if missing) the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup (in \TCPIP\BIN\tcpstart.cmd)&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; and, when asked for home directory, specify the previously created one (in our sample: &amp;quot;c:\home\default\mail\username&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location; comment the &amp;quot;set mailspool&amp;quot; line&lt;br /&gt;
&lt;br /&gt;
- run &lt;br /&gt;
&lt;br /&gt;
  mailutil create &amp;quot;#driver.mbx/mail\username\inbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and start inetd. Server is up and running!&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4205</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4205"/>
		<updated>2006-10-26T13:12:08Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A small how to to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DRAFT and INCOMPLETE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere&lt;br /&gt;
&lt;br /&gt;
- create a directory to store the email files, for example c:\home\default\mail\username&lt;br /&gt;
&lt;br /&gt;
- in \mptn\etc create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup&lt;br /&gt;
&lt;br /&gt;
- run the command &#039;&#039;&#039;pw2add&#039;&#039;&#039; and, when asked for home directory, specify the previously created one (in our sample: &amp;quot;c:\home\default\mail\username&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it to reflect the imapd.exe location; comment the &amp;quot;set mailspool&amp;quot; line&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4204</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4204"/>
		<updated>2006-10-26T13:04:54Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A small how to to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DRAFT and INCOMPLETE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere&lt;br /&gt;
&lt;br /&gt;
- in \mptn\etc create an empty file named &#039;&#039;&#039;passwd&#039;&#039;&#039; and add to the &#039;&#039;&#039;inetd.lst&#039;&#039;&#039; file the line:&lt;br /&gt;
&lt;br /&gt;
  imap tcp imapd&lt;br /&gt;
&lt;br /&gt;
- configure inetd for autostart at system startup&lt;br /&gt;
&lt;br /&gt;
- create a directory for the Inbox file (e.g.: \var\mail), and one for the other files (e.g.: \home\default\imap)&lt;br /&gt;
&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4203</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4203"/>
		<updated>2006-10-26T12:57:09Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A small how to to install and configure the port of Imapd server for Os/2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DRAFT and INCOMPLETE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Download the imapd server from [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;amp;button=Search&amp;amp;key=Washington+mail+servers&amp;amp;stype=all&amp;amp;sort=type&amp;amp;dir=%2F Hobbes] and unzip it somewhere&lt;br /&gt;
- create a directory for the Inbox file (e.g.: \var\mail), and one for the other files (e.g.: \home\default\imap)&lt;br /&gt;
- copy the file imap.cmd to \TCPIP\BIN and edit it&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4202</id>
		<title>Configuring imapd server port</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Configuring_imapd_server_port&amp;diff=4202"/>
		<updated>2006-10-26T12:44:12Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== A small how to to installa a configure the port of Imapd server for Os/2 ==&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4177</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=4177"/>
		<updated>2006-10-22T19:02:59Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: note about SYS0032&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that this is just a draft that comes from a not-expert, so use at your risk!&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS, from information harvested in the XWP newsgroup and from suggestions received in the same place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP branch stuff. As you sooner or later could like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
** WarpIn&lt;br /&gt;
 &lt;br /&gt;
XWP branch requires the XWP Helpers branch, XWP trunk requires the XWP Helpers trunk and WarpIn, just as a note, requires the XWP Helpers trunk. &lt;br /&gt;
* To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag, that is: &amp;quot;cvs checkout .&amp;quot;&lt;br /&gt;
* To checkout the &#039;&#039;&#039;branches&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag: &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
* If you want to build &#039;&#039;&#039;latest public version&#039;&#039;&#039; then checkout using the release tags, that is for XWP: &amp;quot;cvs checkout -r pr_0002_1-0-4 .&amp;quot; and for XWP Helpers: &amp;quot;cvs checkout -r pr_0007_xwp1-0-4 .&amp;quot;&lt;br /&gt;
If you want to modify (NLS) things, then checkout using the branch tag. You ought to set your own release tags for the NLS stuff when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The compilation environment ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE and XWPHOOK.DLL while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;br /&gt;
You have good change to get an error like:&lt;br /&gt;
&lt;br /&gt;
 E:\netlabs_CVS\xworkplace\bin\modules\xwphook.dll =&amp;gt; E:\programs\xworkplace\binxwphook.dll&lt;br /&gt;
 SYS0032: Process can&#039;t access file...&lt;br /&gt;
&lt;br /&gt;
This means that you have XWorkplace running and you have to UNLOCK the files first if you are copying over your running files. Put XWP_UNLOCK_MODULES = YES in CONFIG.IN - it&#039;s down near the bottom. The Unlock utility from the LxLite package is required.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3888</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3888"/>
		<updated>2006-04-01T09:48:27Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that this is just a draft that comes from a not-expert, so use at your risk :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS, from information harvested in the XWP newsgroup and from suggestions received in the same place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r &#039;&#039;&#039;branch-1-0&#039;&#039;&#039; .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP branch stuff. As you sooner or later could like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
** WarpIn&lt;br /&gt;
 &lt;br /&gt;
XWP branch requires the XWP Helpers branch, XWP trunk requires the XWP Helpers trunk and WarpIn, just as a note, requires the XWP Helpers trunk. &lt;br /&gt;
* To checkout the &#039;&#039;&#039;trunk&#039;&#039;&#039;, use no tag, that is: &amp;quot;cvs checkout .&amp;quot;&lt;br /&gt;
* To checkout the &#039;&#039;&#039;branches&#039;&#039;&#039;, use the &amp;quot;branch-1-0&amp;quot; tag: &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
* If you want to build &#039;&#039;&#039;latest public version&#039;&#039;&#039; then checkout using the release tags, that is for XWP: &amp;quot;cvs checkout -r pr_0002_1-0-4 .&amp;quot; and for XWP Helpers: &amp;quot;cvs checkout -r pr_0007_xwp1-0-4 .&amp;quot;&lt;br /&gt;
If you want to modify (NLS) things, then checkout using the branch tag. You ought to set your own release tags for the NLS stuff when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The compilation environment ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE, and XWPHOOK.DLL , while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3738</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3738"/>
		<updated>2006-01-17T12:07:43Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: Updated CVS stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that this is just a draft that comes from a not-expert, so use at your risk :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources, from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS, from information harvested in the XWP newsgroup and from suggestions received in the same place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting sources from CVS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To compile XWP you need to retrieve from Netlabs&#039; CVS server both XWP and XWP helpers sources.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP branch stuff. As you sooner or later could like to play with trunk, or to compile a specific XWP version, maybe because you are working on translating it, a good idea is to maintain different &#039;&#039;sandboxes&#039;&#039; for trunk and branches. A good directory organization could be:&lt;br /&gt;
&lt;br /&gt;
*your CVS root folder &lt;br /&gt;
** XWP branch&lt;br /&gt;
** XWP trunk&lt;br /&gt;
** XWP Helpers branch&lt;br /&gt;
** XWP Helpers trunk&lt;br /&gt;
** WarpIn&lt;br /&gt;
 &lt;br /&gt;
XWP branch requires the XWP Helpers branch, XWP trunk requires the XWP Helpers trunk and WarpIn, just as a note, requires the XWP Helpers trunk. &lt;br /&gt;
* To checkout the trunk, use no tag, that is: &amp;quot;cvs checkout .&amp;quot;&lt;br /&gt;
* To checkout the branches, use the &amp;quot;branch-1-0&amp;quot; tag: &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
* If you want to build latest public version then checkout using the release tags, that is for XWP: &amp;quot;cvs checkout -r pr_0002_1-0-4 .&amp;quot; and for XWP Helpers: &amp;quot;cvs checkout -r pr_0007_xwp1-0-4 .&amp;quot;&lt;br /&gt;
If you want to modify (NLS) things, then checkout using the branch tag. You ought to set your own release tags for the NLS stuff when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The compilation environment ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE, and XWPHOOK.DLL , while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3733</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3733"/>
		<updated>2006-01-13T10:59:31Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
I&#039;m Gabriele Gamba and I first of all want to say that I&#039;m totally ignorant about programming! More: these instructions come from one that is currently &#039;&#039;&#039;not able&#039;&#039;&#039; to successfully compile XWorkplace on his computer, so... use at your risk :-)&lt;br /&gt;
So, what follows is just a draft, that I hope someone more computer literated than me can correct and extend, and I will be very happy to let him the honours for this page :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources and from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP stuff. Now, the compilation environment:&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE, and XWPHOOK.DLL , while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3732</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3732"/>
		<updated>2006-01-13T10:45:14Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: Just a draft, of doubtful utility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
I&#039;m Gabriele Gamba and I first of all what to say that I&#039;m totally ignorant about programming! More: these instructions come from one that is currently &#039;&#039;&#039;not able&#039;&#039;&#039; to successfully compile XWorkplace on his computer, so... use at your risk :-)&lt;br /&gt;
So, what follows is just a draft, that I hope someone more computer literated than me can correct and extend, and I will be very happy to let him the honours for this page :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources and from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP stuff. Now, the compilation environment:&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE, and XWPHOOK.DLL , while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3731</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3731"/>
		<updated>2006-01-13T10:43:44Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
I&#039;m Gabriele Gamba and I first of all what to say that I&#039;m totally ignorant about programming! So, what follows is just a draft, that I hope someone more computer literated than me can correct and extend, and I will be very happy to let him the honours for this page :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources and from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace&amp;quot; (e.g. x:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS.&lt;br /&gt;
Now you need the XWorkplace helpers.&lt;br /&gt;
&lt;br /&gt;
* go again in your CVS root folder (e.g. x:\CVS)&lt;br /&gt;
* do &amp;quot;CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xwphelpers&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xwphelpers&amp;quot; (e.g. x:\cvs\xwphelpers)&lt;br /&gt;
* change to xwphelpers and do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You just downloaded from CVS all what you need to compile the very latest XWP stuff. Now, the compilation environment:&lt;br /&gt;
&lt;br /&gt;
* IBM VisualAge C++ 3.0 with fixpak 8 is reccomended (and it is also the only environment currently supported.&lt;br /&gt;
* OS/2 Developer&#039;s Toolkit for all the SOM header files and the SOM compiler: the ones included in eCS 1.2 CD #2 seems good.&lt;br /&gt;
&lt;br /&gt;
Now, you have on your computer all what is needed to &#039;&#039;try&#039;&#039; to compile XWP :-)&lt;br /&gt;
&lt;br /&gt;
* first of all, adjust x:\CVS\xworkplace\config.in to your needs&lt;br /&gt;
* then, from x:\CVS\xworkplace\ run &amp;quot;nmake dep&amp;quot;.  If you have never built XWorkplace before, &amp;quot;nmake dep&amp;quot; will give you lots of warnings that headers could not be found. This is normal.&lt;br /&gt;
* After that, run either &amp;quot;nmake all&amp;quot; or &amp;quot;nmake really_all&amp;quot;. &amp;quot;nmake all&amp;quot; will only rebuild XFLDR.DLL, XWPDAEMN.EXE, and XWPHOOK.DLL , while &amp;quot;nmake really_all&amp;quot; will produce the full set of XWorkplace executables plus the NLS files.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3730</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3730"/>
		<updated>2006-01-13T10:21:45Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
I&#039;m Gabriele Gamba and I first of all what to say that I&#039;m totally ignorant about programming! So, what follows is just a draft, that I hope someone more computer literated than me can correct and extend, and I will be very happy to let him the honours for this page :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources and from [http://www.xworkplace.org/cvs.html Ulrich&#039;s page] about setting up CVS.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
* go in your CVS root folder (e.g. e:\CVS)&lt;br /&gt;
* do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
* create a subdirectory in your CVS root directory named &amp;quot;xworkplace (e.g. E:\cvs\xworkplace)&lt;br /&gt;
* change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
* from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
* do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3729</id>
		<title>Compiling XWP</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=Compiling_XWP&amp;diff=3729"/>
		<updated>2006-01-13T10:17:59Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
I&#039;m Gabriele Gamba and I first of all what to say that I&#039;m totally ignorant about programming! So, what follows is just a draft, that I hope someone more computer literated than me can correct and extend, and I will be very happy to let him the honours for this page :-)&lt;br /&gt;
&lt;br /&gt;
Information listed here comes from progref.inf file included in the XWP&#039;s sources and from http://www.xworkplace.org/cvs.html page.&lt;br /&gt;
&lt;br /&gt;
Supposing that you already have a working CVS setup, do this:&lt;br /&gt;
&lt;br /&gt;
1) go in your CVS root folder (e.g. e:\CVS)&lt;br /&gt;
2) do &amp;quot;SET CVSROOT=:pserver:guest@www.netlabs.org:/netlabs.cvs/xworkplace&amp;quot;&lt;br /&gt;
3) create a subdirectory in your CVS root directory named &amp;quot;xworkplace (e.g. E:\cvs\xworkplace)&lt;br /&gt;
4) change to xworkplace directory and do &amp;quot;SET USER=guest&amp;quot;&lt;br /&gt;
5) from the same directory, do &amp;quot;CVS login&amp;quot;; enter &amp;quot;readonly&amp;quot; when you are prompted for password&lt;br /&gt;
6) do &amp;quot;cvs checkout -r branch-1-0 .&amp;quot; &amp;lt;-- don&#039;t forget the last dot!&lt;br /&gt;
&lt;br /&gt;
This last command will retrieve the most updated stuff from CVS&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=2403</id>
		<title>XWorkplace</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=2403"/>
		<updated>2005-09-25T16:33:13Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* XWorkplace: Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== XWorkplace: Future plan ===&lt;br /&gt;
&lt;br /&gt;
This page is intended to discuss future updates or additions to XWP.&lt;br /&gt;
&lt;br /&gt;
* Create a logoff feature, which basicly does everything shutdown does, but afterwards exits the [[WPS]], like with restart WPS, instead of shutting the machine down. This way you could return to a login dialog easily.&lt;br /&gt;
* Finish the font dialog  ( use ft2lib ? )&lt;br /&gt;
* Finish the file dialog, or better fix it, and implement it as discussed in: [[ideas#wps]]&lt;br /&gt;
* Make XWP and WPSWizzard/CWMM/ADC aware of eacht other. Please point out which problems arise when these packages are installed in parallel so we have point for starting discussion ;-).&lt;br /&gt;
* Extend Program object by &lt;br /&gt;
** allow for env variables to be set&lt;br /&gt;
*** in a page within the settings notebook&lt;br /&gt;
*** in a file *.env with the name of the executable&lt;br /&gt;
** use strict libpath&lt;br /&gt;
* add a cron/schedule folder. Only when a shadow of a program object is dragged into it once or more often (nothing else than shadows allowed in this folder)&lt;br /&gt;
** the settings notebook then contains a notebook page &#039;schedule&#039; or alike, containing the time settings&lt;br /&gt;
** the context menu contains an item to activate the schedule item or to disable it&lt;br /&gt;
** the icon shows an added bitmap (just like shadow objects) to indicate an active or inactive schedule)&lt;br /&gt;
* Add the possibility to save the application settings &#039;&#039;&#039;once&#039;&#039;&#039;. So you can do your setup like you want it, you logoff once and it will be saved but it won&#039;t save it each time you logoff.&lt;br /&gt;
* Compile against GCC&lt;br /&gt;
&lt;br /&gt;
=== XWorkplace: Ideas ===&lt;br /&gt;
&lt;br /&gt;
As soon as the developers of XWP agree with any of these ideas the topic should be moved up to the plan section.&lt;br /&gt;
&lt;br /&gt;
* Review the trashcan. It was never usable for me. Constant WPS lockups (Cinc)&lt;br /&gt;
* Wrap the XWP file dialog into an object so it&#039;s usable using RWS until it&#039;s integrated globally into the system.&lt;br /&gt;
* Add a function to set the standard browser. This is a common problem for quite some people.&lt;br /&gt;
* Set a ctrl+alt+backspace key to hard reset the wps. Hard Reset without any questions.(Like *nix)&lt;br /&gt;
* In Gnome you can attach so-called &amp;quot;emblems&amp;quot; to icons, as a remind for something (see http://xtracker.netlabs.org/index.php?binary=137 and http://xtracker.netlabs.org/index.php?binary=138 for two samples). Maybe these &amp;quot;emblems&amp;quot; could be added to icons of DataFile objects with a mechanism similar the one used for the &amp;quot;Mark shadow icons&amp;quot; function? We could have a menu item to select the &amp;quot;emblem&amp;quot; to attach to the file.&lt;br /&gt;
&lt;br /&gt;
====XCenter====&lt;br /&gt;
* XCenter Transparency: Allow Transparency Button and a transparency percentage field (%)&lt;br /&gt;
* XCenter tasklist widget menu: rearrange menu items s othat the close/kill items are at the bottom better reachable)&lt;br /&gt;
* XCenter tray object menu: add &#039;locate&#039; item of shadow objects, in order to quickly find the folder of the original item&lt;br /&gt;
* Allow xcenter to be also included as a bar on WPS desktop windows. The idea will be to have xCenter widgets on the desktop windows like the common Windows bars like MSN Search bar, or other. It will be nice to have the Weather widgets on all the OS/2-eCS desktop windows.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=1583</id>
		<title>XWorkplace</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=1583"/>
		<updated>2005-09-25T16:32:36Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* XCenter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== XWorkplace: Future plan ===&lt;br /&gt;
&lt;br /&gt;
This page is intended to discuss future updates or additions to XWP.&lt;br /&gt;
&lt;br /&gt;
* Create a logoff feature, which basicly does everything shutdown does, but afterwards exits the [[WPS]], like with restart WPS, instead of shutting the machine down. This way you could return to a login dialog easily.&lt;br /&gt;
* Finish the font dialog  ( use ft2lib ? )&lt;br /&gt;
* Finish the file dialog, or better fix it, and implement it as discussed in: [[ideas#wps]]&lt;br /&gt;
* Make XWP and WPSWizzard/CWMM/ADC aware of eacht other. Please point out which problems arise when these packages are installed in parallel so we have point for starting discussion ;-).&lt;br /&gt;
* Extend Program object by &lt;br /&gt;
** allow for env variables to be set&lt;br /&gt;
*** in a page within the settings notebook&lt;br /&gt;
*** in a file *.env with the name of the executable&lt;br /&gt;
** use strict libpath&lt;br /&gt;
* add a cron/schedule folder. Only when a shadow of a program object is dragged into it once or more often (nothing else than shadows allowed in this folder)&lt;br /&gt;
** the settings notebook then contains a notebook page &#039;schedule&#039; or alike, containing the time settings&lt;br /&gt;
** the context menu contains an item to activate the schedule item or to disable it&lt;br /&gt;
** the icon shows an added bitmap (just like shadow objects) to indicate an active or inactive schedule)&lt;br /&gt;
* Add the possibility to save the application settings &#039;&#039;&#039;once&#039;&#039;&#039;. So you can do your setup like you want it, you logoff once and it will be saved but it won&#039;t save it each time you logoff.&lt;br /&gt;
* Compile against GCC&lt;br /&gt;
&lt;br /&gt;
=== XWorkplace: Ideas ===&lt;br /&gt;
&lt;br /&gt;
As soon as the developers of XWP agree with any of these ideas the topic should be moved up to the plan section.&lt;br /&gt;
&lt;br /&gt;
* Review the trashcan. It was never usable for me. Constant WPS lockups (Cinc)&lt;br /&gt;
* Wrap the XWP file dialog into an object so it&#039;s usable using RWS until it&#039;s integrated globally into the system.&lt;br /&gt;
* Add a function to set the standard browser. This is a common problem for quite some people.&lt;br /&gt;
* Set a ctrl+alt+backspace key to hard reset the wps. Hard Reset without any questions.(Like *nix)&lt;br /&gt;
&lt;br /&gt;
====XCenter====&lt;br /&gt;
* XCenter Transparency: Allow Transparency Button and a transparency percentage field (%)&lt;br /&gt;
* XCenter tasklist widget menu: rearrange menu items s othat the close/kill items are at the bottom better reachable)&lt;br /&gt;
* XCenter tray object menu: add &#039;locate&#039; item of shadow objects, in order to quickly find the folder of the original item&lt;br /&gt;
* Allow xcenter to be also included as a bar on WPS desktop windows. The idea will be to have xCenter widgets on the desktop windows like the common Windows bars like MSN Search bar, or other. It will be nice to have the Weather widgets on all the OS/2-eCS desktop windows.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
	<entry>
		<id>https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=1582</id>
		<title>XWorkplace</title>
		<link rel="alternate" type="text/html" href="https://wiki.netlabs.org/index.php?title=XWorkplace&amp;diff=1582"/>
		<updated>2005-09-25T16:32:12Z</updated>

		<summary type="html">&lt;p&gt;Ggamba: /* XCenter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== XWorkplace: Future plan ===&lt;br /&gt;
&lt;br /&gt;
This page is intended to discuss future updates or additions to XWP.&lt;br /&gt;
&lt;br /&gt;
* Create a logoff feature, which basicly does everything shutdown does, but afterwards exits the [[WPS]], like with restart WPS, instead of shutting the machine down. This way you could return to a login dialog easily.&lt;br /&gt;
* Finish the font dialog  ( use ft2lib ? )&lt;br /&gt;
* Finish the file dialog, or better fix it, and implement it as discussed in: [[ideas#wps]]&lt;br /&gt;
* Make XWP and WPSWizzard/CWMM/ADC aware of eacht other. Please point out which problems arise when these packages are installed in parallel so we have point for starting discussion ;-).&lt;br /&gt;
* Extend Program object by &lt;br /&gt;
** allow for env variables to be set&lt;br /&gt;
*** in a page within the settings notebook&lt;br /&gt;
*** in a file *.env with the name of the executable&lt;br /&gt;
** use strict libpath&lt;br /&gt;
* add a cron/schedule folder. Only when a shadow of a program object is dragged into it once or more often (nothing else than shadows allowed in this folder)&lt;br /&gt;
** the settings notebook then contains a notebook page &#039;schedule&#039; or alike, containing the time settings&lt;br /&gt;
** the context menu contains an item to activate the schedule item or to disable it&lt;br /&gt;
** the icon shows an added bitmap (just like shadow objects) to indicate an active or inactive schedule)&lt;br /&gt;
* Add the possibility to save the application settings &#039;&#039;&#039;once&#039;&#039;&#039;. So you can do your setup like you want it, you logoff once and it will be saved but it won&#039;t save it each time you logoff.&lt;br /&gt;
* Compile against GCC&lt;br /&gt;
&lt;br /&gt;
=== XWorkplace: Ideas ===&lt;br /&gt;
&lt;br /&gt;
As soon as the developers of XWP agree with any of these ideas the topic should be moved up to the plan section.&lt;br /&gt;
&lt;br /&gt;
* Review the trashcan. It was never usable for me. Constant WPS lockups (Cinc)&lt;br /&gt;
* Wrap the XWP file dialog into an object so it&#039;s usable using RWS until it&#039;s integrated globally into the system.&lt;br /&gt;
* Add a function to set the standard browser. This is a common problem for quite some people.&lt;br /&gt;
* Set a ctrl+alt+backspace key to hard reset the wps. Hard Reset without any questions.(Like *nix)&lt;br /&gt;
&lt;br /&gt;
====XCenter====&lt;br /&gt;
* XCenter Transparency: Allow Transparency Button and a transparency percentage field (%)&lt;br /&gt;
* XCenter tasklist widget menu: rearrange menu items s othat the close/kill items are at the bottom better reachable)&lt;br /&gt;
* XCenter tray object menu: add &#039;locate&#039; item of shadow objects, in order to quickly find the folder of the original item&lt;br /&gt;
* Allow xcenter to be also included as a bar on WPS desktop windows. The idea will be to have xCenter widgets on the desktop windows like the common Windows bars like MSN Search bar, or other. It will be nice to have the Weather widgets on all the OS/2-eCS desktop windows.&lt;br /&gt;
* In Gnome you can attach so-called &amp;quot;emblems&amp;quot; to icons, as a remind for something (see http://xtracker.netlabs.org/index.php?binary=137 and http://xtracker.netlabs.org/index.php?binary=138 for two samples). Maybe these &amp;quot;emblems&amp;quot; could be added to icons of DataFile objects with a mechanism similar the one used for the &amp;quot;Mark shadow icons&amp;quot; function? We could have a menu item to select the &amp;quot;emblem&amp;quot; to attach to the file.&lt;/div&gt;</summary>
		<author><name>Ggamba</name></author>
	</entry>
</feed>