Commit ca4cd0b5 authored by Jondy Zhao's avatar Jondy Zhao

cygwin: add document using-slapos-in-windows.html

parent 1a21d790
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using SlapOS in the Windows</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="Using SlapOS in the Windows"><div class="titlepage"><div><div><h1 class="title"><a name="id9250019"></a>Using SlapOS in the Windows</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Jondy</span> <span class="surname">Zhao</span></h3></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.3</td><td align="left">2013-07-11</td><td align="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><td align="left" colspan="3">Add chapter SlapOS Sources Changed For Windows.</td></tr><tr><td align="left">Revision 0.2</td><td align="left">2013-07-05</td><td align="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><td align="left" colspan="3">Add Cron Service and Know Issues section, fix some problems in the chapter Generating windows installer from sources.</td></tr><tr><td align="left">Revision 0.1</td><td align="left">2013-06-20</td><td align="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><td align="left" colspan="3">Create the document.</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#ch_introduction">1. Introduction</a></span></dt><dt><span class="chapter"><a href="#ch_install_slapos">2. Installing SlapOS node in the Windows</a></span></dt><dt><span class="chapter"><a href="#id9246452">3. Using Slapos in the Windows</a></span></dt><dd><dl><dt><span class="section"><a href="#sec_configure_slapos">3.1. Configure SlapOS</a></span></dt><dt><span class="section"><a href="#id9207845">3.2. SlapOS Node</a></span></dt><dt><span class="section"><a href="#id9255725">3.3. SlapOS</a></span></dt><dt><span class="section"><a href="#id9255740">3.4. SlapOS Runner</a></span></dt><dt><span class="section"><a href="#id9255765">3.5. Command Console</a></span></dt><dt><span class="section"><a href="#id9255797">3.6. User Guide</a></span></dt><dt><span class="section"><a href="#id9255806">3.7. Cron Service</a></span></dt><dt><span class="section"><a href="#id9255830">3.8. Known issues</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ch_generate_window_installer">4. Generating windows installer from sources</a></span></dt><dd><dl><dt><span class="section"><a href="#id9255945">4.1. Setting Up Cygwin</a></span></dt><dt><span class="section"><a href="#id9256125">4.2. Building SlapOS</a></span></dt><dt><span class="section"><a href="#id9256182">4.3. Preparing the sources files for installer</a></span></dt><dt><span class="section"><a href="#id9256362">4.4. Making installer</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ch_run_slapos_from_sources">5. Run SlapOS From Sources</a></span></dt><dt><span class="chapter"><a href="#id9256499">6. SlapOS Sources Changed For Windows</a></span></dt><dd><dl><dt><span class="section"><a href="#id9256603">6.1. How to upgrade the sources</a></span></dt><dt><span class="section"><a href="#id9256652">6.2. How to upgrade installer</a></span></dt><dt><span class="section"><a href="#id9256662">6.3. Merge sources to master branch</a></span></dt></dl></dd><dt><span class="appendix"><a href="#appendix_cygwin_packages">A. Cygwin Required Packages List</a></span></dt></dl></div><div class="chapter" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="ch_introduction"></a>Chapter 1. Introduction</h2></div></div></div><p>SlapOS can be described as a cloud operating system in which "everything is a process" unlike Unix in which "everything is a file". If one has to manage thousands of servers with thousands of processes, hundred different applications in multiple different releases or versions, SlapOS can help you a lot by making the whole management process well specified, automated and under control.</p><p>The goal of this tutorial is to teach how to use SlapOS in the windows.</p></div><div class="chapter" title="Chapter 2. Installing SlapOS node in the Windows"><div class="titlepage"><div><div><h2 class="title"><a name="ch_install_slapos"></a>Chapter 2. Installing SlapOS node in the Windows</h2></div></div></div><p>At first, we need to sign up in VIFIB community Cloud by clicking here <a class="ulink" href="https://www.slapos.org/login_form" target="_top">https://www.slapos.org/login_form</a></p><p>Then download the latest slapos windows installer from <a class="ulink" href="http://www.erp5.org/dists/installer" target="_top">http://www.erp5.org/dists/installer</a>, the filename of windows installer look like slapos-XXX-windows-YYY-all-in-one.exe or slapos-XXX-windows-YYY.exe, XXX stands for version-release information. YYY could be X86 or x64, the former means 32-bit, the latter 64-bit windows. The all-in-one installer include all the files required by slapos node, so it can run in the computer which doesn't access internat; the later will download most of packages from internet and build, so it need more time than all-in-one installer. It's recommanded to use the former installer in case of slow or unstable internet even if the size of all-in-one installer is more than 100MB, compare of the latter which size is about 2MB.</p><p>Double click the installer, click Next, Next ...
</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the current user isn't Administrator, you need run it as Administrator. Right click the installer, then click Run As Administrator.</p></div><p>
</p><p>At the final wizard page, click Install.</p><p>Waiting for everything done.</p><p>If you prefer to install slapos node from sources, refer to the chapter <a class="xref" href="#ch_run_slapos_from_sources" title="Chapter 5. Run SlapOS From Sources">Chapter 5, <i>Run SlapOS From Sources</i></a>.</p></div><div class="chapter" title="Chapter 3. Using Slapos in the Windows"><div class="titlepage"><div><div><h2 class="title"><a name="id9246452"></a>Chapter 3. Using Slapos in the Windows</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#sec_configure_slapos">3.1. Configure SlapOS</a></span></dt><dt><span class="section"><a href="#id9207845">3.2. SlapOS Node</a></span></dt><dt><span class="section"><a href="#id9255725">3.3. SlapOS</a></span></dt><dt><span class="section"><a href="#id9255740">3.4. SlapOS Runner</a></span></dt><dt><span class="section"><a href="#id9255765">3.5. Command Console</a></span></dt><dt><span class="section"><a href="#id9255797">3.6. User Guide</a></span></dt><dt><span class="section"><a href="#id9255806">3.7. Cron Service</a></span></dt><dt><span class="section"><a href="#id9255830">3.8. Known issues</a></span></dt></dl></div><p>After SlapOS has been installed successfully, you will find program group "SlapOS" which include the following entries:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Configure SlapOS</p></li><li class="listitem"><p>SlapOS Node</p></li><li class="listitem"><p>SlapOS</p></li><li class="listitem"><p>SlapOS Runner</p></li><li class="listitem"><p>Command Console</p></li><li class="listitem"><p>User Guide</p></li></ul></div><p>
</p><div class="section" title="3.1. Configure SlapOS"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec_configure_slapos"></a>3.1. Configure SlapOS</h2></div></div></div><p>It used to generate all the configure files required by slapos slave node, you can run it anytime when you need change the configure of your slapos slave node.</p><p>Go to slapos.org (or any other SlapOS Master), register if not already done, go to My Account and request an SSL certificate:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Copy the certificate in a file, save it in C:/slapos/cygwin/certificate</p></li><li class="listitem"><p>Copy the key in a file, save it in C:/slapos/cygwin/key</p></li></ul></div><p>
You can save them anywhere, but it's better to save them in the path C:/slapos/cygwin which is your slapos installed, because it's the default path in the slapos configure script. </p><p>More information refer to <a class="ulink" href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Installing.SlapOS.Client" target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Installing.SlapOS.Client</a></p><p>Then register your computer to slapos.org community Cloud. By doing so, we will obtain X509 certificate and key which are later needed for the configuration process.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Login to www.slapos.org. Go to the "My Space" area and then to the "My Servers" section. Click on the button "New Server". This button will lead you to a page where you can specify the name of your server.</p></li><li class="listitem"><p>Enter a self contained name to identify your server. Consider a name "VIFIB 19 Asus i7 for JB" rather than "My Server". This will help you find your server later on. Click on the "Add" button.</p></li><li class="listitem"><p>X509 key and certificate are generated. Certificates are not stored by slapos.org server. They will be lost if you do not save them : Do not close this web page yet as we are going to store the key and certificate in files in next step. </p></li><li class="listitem"><p>Copy the certificate in a file, save it in C:/slapos/cygwin/computer.crt</p></li><li class="listitem"><p>Copy the key in a file, save it in C:/slapos/cygwin/computer.key</p></li></ul></div><p>
More information refer to <a class="ulink" href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Running.SlapOS.on.your.computer" target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Running.SlapOS.on.your.computer</a> in the section VIFIB Registration.</p><p>Now it's time to run Configure SlapOS, click Start -&gt; SlapOS -&gt; Configure SlapOS, if the current user isn't Administrator, Right click Configure SlapOS, then Run As Administrator.</p><p>Or you can run configure script in the command line, first click Start -&gt; SlapOS -&gt; Command Console, if the current user isn't Administrator, Right click Command Console, then Run As Administrator, then in the command line:
</p><pre class="programlisting">
/etc/opt/slapos/scripts/slapos-configure.sh
</pre><p>
The configure script will guide you to configure slapos slave node, first, a super account "slaproot" will be created, you need type the password for this account
</p><pre class="programlisting">
*** Info: Please enter a password for new user slaproot. Please be sure
*** Info: that this password matches the password rules given on your system.
*** Info: Entering no password will exit the configuration.
*** Query: Please enter the password:
*** Query: Reenter:
</pre><p>
Remember this password, it may be required when you run slapos configure again.
</p><pre class="programlisting">
</pre><p>
Next the configure script need certificate and key information:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Type computer certificate filename, if it's stored in the default path as above, type Enter directly</p></li><li class="listitem"><p>Type computer key filename, if it's stored in the default path as above, type Enter directly</p></li><li class="listitem"><p>Type client certificate filename, if it's stored in the default path as above, type Enter directly</p></li><li class="listitem"><p>Type client key filename, if it's stored in the default path as above, type Enter directly</p></li></ul></div><p>
Then waiting for configure script finished. Be sure the configure scrip report successfully, otherwise fix the problem and run it again. You can run Slapos Configure at anytime, and netx time you needn't input anything, configure scripts just checks all the configuration and update the configure files.
</p></div><div class="section" title="3.2. SlapOS Node"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9207845"></a>3.2. SlapOS Node</h2></div></div></div><p>It's used to create instance of slapos webrunner, format slapos node, release software and create instance, you an run it at any time.</p><p>Click Start -&gt; SlapOS -&gt; SlapOS Node, if the current user isn't Administrator, Right click SlapOS Node, then Run As Administrator.</p><p>Be sure the scrip reports successfully, otherwise fix the problem and run it again.</p></div><div class="section" title="3.3. SlapOS"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255725"></a>3.3. SlapOS</h2></div></div></div><p>This is used by slapos client, now it's connected to <a class="ulink" href="https://www.slapos.org" target="_top">https://www.slapos.org</a>. Logon and enjoy the journey in the SlapOS Cloud world.</p></div><div class="section" title="3.4. SlapOS Runner"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255740"></a>3.4. SlapOS Runner</h2></div></div></div><p>SlapOS Runner is a web based development tool which uses slapgrid to install the software, and it could be used to manage your slapos slave node in your computer.</p><p>After installing slapos, Node Runner isn't available. You need run SlapOS Node first. After that, Node Runner would be available.</p><p>Refer to <a class="ulink" href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Howto.Use.SlapOS.Web.Runner.html5" target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Howto.Use.SlapOS.Web.Runner.html5</a></p></div><div class="section" title="3.5. Command Console"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255765"></a>3.5. Command Console</h2></div></div></div><p>It will open a terminal, here you can run most of slapos command, for examples,
</p><pre class="programlisting">
slapos node foramt -cv --now
slapos supply slaprunner COMP-1658
slapos request "Jondy Web Runner In Windows 7" slaposwebrunner --node computer_guid=COMP-1658
slapos node software
slapos node instance
slapos node status
</pre><p>
</p><p>For more information, refer to <a class="ulink" href="http://git.erp5.org/gitweb/slapos.core.git/blob/HEAD:/documentation/source/slapos.usage.rst?js=1" target="_top">http://git.erp5.org/gitweb/slapos.core.git/blob/HEAD:/documentation/source/slapos.usage.rst?js=1</a></p></div><div class="section" title="3.6. User Guide"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255797"></a>3.6. User Guide</h2></div></div></div><p>It just showes this documnet in the web browser.</p></div><div class="section" title="3.7. Cron Service"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255806"></a>3.7. Cron Service</h2></div></div></div><p>After run Configure SlapOS, a cron service will start in the background which used to release software and create instance periodically. Open Cygwin Terminal, type the following command to check cron jobs:
</p><pre class="programlisting">
# List all cron tabs
crontab -l
# Check cron works
tail /var/log/messages
# Edit cron tasks
crontab -e
# Stop cron
net stop cron
# Start cron
net start cron
</pre><p>
</p></div><div class="section" title="3.8. Known issues"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255830"></a>3.8. Known issues</h2></div></div></div><p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Sometime cygwin service re6stnet cound't be stop by command "net stop", you need kill openvpn at first:
</p><pre class="programlisting">
TASKKILL /F /IM openvpn.exe
net stop re6stnet
rm -rf /var/lib/re6stnet
</pre><p>
Then you can start re6stnet again:
</p><pre class="programlisting">
net start re6stnet
</pre></li><li class="listitem"><p>If you're in non-english environment, be sure Cygwin Terminal works well in your own chareset. Click Start -&gt; SlapOS -&gt; Command Console, then
</p><pre class="programlisting">
netsh interface ipv6 show interface
</pre><p>
Check localize connection name show correctly. If not, maybe you need set environment variable "LANG" by command "ipwin" which is distributed with slapos windows installer. To be sure it's available. Type the following command:
</p><pre class="programlisting">
echo "LANG=C.$(ipwin codepage)" &gt;&gt; ~/.bashrc
tail ~/.bashrc
</pre><p>
Then restart your command terminal.
</p></li><li class="listitem"><p>Sometimes cygwin report remap errors, for example
</p><pre class="programlisting">
0 [main] python2.7 3416 child_info_fork::abort: unable to remap _zope_interface_coptimizations.dll to same address as parent (0x450000) - try running rebaseall
0 [main] python2.7 2332 child_info_fork::abort: unable to remap etree.dll to same address as parent (0x28B0000) - try running rebaseall
0 [main] python2.7 3604 child_info_fork::abort: unable to remap _zope_interface_coptimizations.dll to same address as parent (0x450000) - try running rebaseall
</pre><p>
You need close all the cygwin box, and double click autorebase.bat in the C:/slapos-node/cygwin/autorebase.bat.
</p></li><li class="listitem"><p>Sometimes service re6stnet can't start, in this case, open cygwin terminal:
</p><pre class="programlisting">
rm -rf /var/lib/re6stnet
net start re6stnet
</pre><p>
</p></li></ul></div><p>
</p></div></div><div class="chapter" title="Chapter 4. Generating windows installer from sources"><div class="titlepage"><div><div><h2 class="title"><a name="ch_generate_window_installer"></a>Chapter 4. Generating windows installer from sources</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id9255945">4.1. Setting Up Cygwin</a></span></dt><dt><span class="section"><a href="#id9256125">4.2. Building SlapOS</a></span></dt><dt><span class="section"><a href="#id9256182">4.3. Preparing the sources files for installer</a></span></dt><dt><span class="section"><a href="#id9256362">4.4. Making installer</a></span></dt></dl></div><p>This chapter describes how to generate windows installer from sources.</p><div class="section" title="4.1. Setting Up Cygwin"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9255945"></a>4.1. Setting Up Cygwin</h2></div></div></div><p>We need Cygwin environment in order to build slapos sources code in the Windows. </p><p>Go to <a class="ulink" href="http://cygwin.com/" target="_top">"http://cygwin.com/"</a> and click on <a class="ulink" href="http://cygwin.com/setup.exe" target="_top">"Install Cygwin Now!"</a>. This will download a GUI installer called setup.exe which can be run to download a complete cygwin installation via the internet. Follow the instructions on each screen to install Cygwin. </p><p>The Root Directory for Cygwin (default C:\cygwin) will become / within your Cygwin installation. You must have write access to the parent directory, and any ACLs on the parent directory will determine access to installed files.</p><p>By default, setup.exe will install only the packages in the Base category and their dependencies, resulting in a minimal Cygwin installation. We need choose the packages required by SlapOS, see <a class="xref" href="#appendix_cygwin_packages" title="Appendix A. Cygwin Required Packages List">Appendix A, <i>Cygwin Required Packages List</i></a>. Since setup.exe automatically selects dependencies, be careful not to unselect any required packages.</p><p>Refer to: <a class="ulink" href="http://cygwin.com/cygwin-ug-net/setup-net.html" target="_top">http://cygwin.com/cygwin-ug-net/setup-net.html</a></p><p>Or you can install cygwin by command console, first you need download setup.exe from cygwin.com, save to D:\temp\setup.exe or somewhere else.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>In the Windows destktop, Click Start</p></li><li class="listitem"><p>Click Run, type command: 'cmd', click OK to enter windows console. Be sure you start 'cmd' as Administrator, if the login user isn't Administrator, run 'cmd' as Administrator:</p></li><li class="listitem"><p>Type the following commands:</p><pre class="programlisting">
D:
MD slapos
CD slapos
SET PACKAGES=-P autobuild -P autoconf -P automake -P autossh -P binutils -P bison -P bzip2 -P ca-certificates -P cron -P curl -P cygport -P cygrunsrv -P file -P flex -P gcc4 -P gdbm -P libgdbm-devel -P gettext -P gettext-devel -P libglib2.0-devel -P libglib2.0_0 -P libexpat1 -P libexpat1-devel -P libmpfr-devel -P libmpfr4 -P libtool -P libxml2 -P libxml2-devel -P libxslt -P libxslt-devel -P make -P m4 -P libncurses-devel -P libncursesw-devel -P patch -P patchutils -P pkg-config -P python -P python-setuptools -P openssh -P openssl-devel -P libopenssl098 -P libopenssl100 -P popt -P readline -P libsqlite3-devel -P libsqlite3_0 -P swig -P syslog-ng -P zlib-devel -P vim -P wget -P libwrap-devel
MOVE d:\temp\setup.exe .\
setup.exe %PACKAGES% --no-verify -D -L -l D:\slapos\cygwin-packages -R D:\slapos\cygwin -s http://www.netgull.com/cygwin
</pre><p>Waiting for the installer finished.</p></li></ul></div><p>
A cygwin icon will be added in the windows desktop, click it to enter cygwin box. If the current user isn't Administrator, then right click cygwin icon, click Run As Administrator. Be suer you have enough rights to run the following commands:
</p><pre class="programlisting">
sed -i -e "s/4\.3\.4/4.5.3/g" /usr/bin/libtool
[[ -f /etc/passwd ]] || mkpasswd &gt; /etc/passwd
[[ -f /etc/group ]] || mkgroup &gt; /etc/group
cp /etc/passwd /etc/passwd.orig
</pre><p>
Now we need patch cygport, otherwise we can't specify install path in the buildout.cfg:
</p><pre class="programlisting">
_filename=/usr/bin/cygport
if [[ -f ${_filename} ]] ; then
echo Patching ${_filename} ...
sed -i -e 's/D="${workdir}\/inst"/D="${CYGCONF_PREFIX-${workdir}\/inst}"/g' ${_filename} &amp;&amp;
echo OK.
fi
_filename=/usr/share/cygport/cygclass/autotools.cygclass
if [[ -f ${_filename} ]] ; then
echo Patching ${_filename} ...
sed -i -e 's/prefix=$(__host_prefix)/prefix=${CYGCONF_PREFIX-$(__host_prefix)}/g' ${_filename} &amp;&amp;
echo OK.
fi
_filename=/usr/share/cygport/cygclass/cmake.cygclass
if [[ -f ${_filename} ]] ; then
echo Patching ${_filename} ...
sed -i -e 's/-DCMAKE_INSTALL_PREFIX=$(__host_prefix)/-DCMAKE_INSTALL_PREFIX=${CYGCONF_PREFIX-$(__host_prefix)}/g' ${_filename} &amp;&amp;
echo OK.
fi
</pre><p>
If you'd like to make the font of command box bigger
</p><pre class="programlisting">
cd ~
cat &lt;&lt;EOF &gt; .minttyrc
BoldAsFont=no
Font=Courier New
FontHeight=16
Scrollbar=none
EOF
</pre><p>
Then restart cygwin command box.
</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>On Windows Vista or Windows 7, you need to run as administrator when launching the cygwin shell to allow the system configuration changes required in some of the steps below. You can configure cygwin to always launch with admin privileges if you wish.</p></div><p>
</p></div><div class="section" title="4.2. Building SlapOS"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256125"></a>4.2. Building SlapOS</h2></div></div></div><p>Double click the desktop icon "Cygwin" to enter cygwin command box, the following commands are typed in this box.
</p><pre class="programlisting">
mkdir -p /cygdrive/d/slapos/opt
cd /
ln -s /cygdrive/d/slapos/opt
mkdir -p /opt/slapos/log
mkdir -p /opt/download-cache
cd /opt/slapos
echo "[buildout]
extends = http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/cygwin-share:/component/slapos/buildout.cfg
download-cache = /opt/download-cache
prefix = ${buildout:directory}
" &gt; buildout.cfg
python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' &gt; bootstrap.py
python -S bootstrap.py
bin/buildout
</pre><p>
Now we need patch slapos.core for supporting cygwin, after these code are merged, it don't need.
</p><pre class="programlisting">
cd $(ls -d /opt/slapos/eggs/slapos.core-*.egg/)
_filename=/opt/git/slapos.package/windows/patches/slapos-core-format.patch
patch -f --dry-run -p1 &lt; ${_filename} &gt; /dev/null &amp;&amp; patch -p1 &lt; ${_filename}
</pre><p>
It seems netifaces.dll need to rebase,
</p><pre class="programlisting">
cp /etc/postinstall/autorebase.bat.done /autorebase.bat
echo Pause &gt;&gt; /autorebase.bat
exit
</pre><p>
After exit cygwin, double click autorebase.bat in the Windows explorer. If the current user isn't Administrator, then right click it, click Run As Administrator.
</p></div><div class="section" title="4.3. Preparing the sources files for installer"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256182"></a>4.3. Preparing the sources files for installer</h2></div></div></div><p>Let's we start cygwin box, then clone slapos.package.git
</p><pre class="programlisting">
mkdir -p /opt/git
cd /opt/git
(cd slapos.package ; git pull) || git clone -b cygwin http://git.erp5.org/repos/slapos.package.git
cp /opt/git/slapos.package/windows/scripts/* /usr/local/bin
cd /opt
tar czf slapos.tar.gz slapos/
mv slapos.tar.gz slapos/
</pre><p>
Then build babeld and openvpn for cygwin, we need use the sources in the slapos.package.git, they are patched for cygwin:
</p><pre class="programlisting">
cd /opt/git/slapos.package/windows/babeld
# WINVER could be XP, VISTA, WIN7, WIN8
WINVER=XP make
cp babeld.exe /usr/bin
cd /opt/git/slapos.package/windows/openvpn
libtoolize
aclocal -I m4
autoheader
automake --add-missing
autoreconf
ac_cv_type_socklen_t=yes IFCONFIG="C:/WINDOWS/system32" LDFLAGS="-liphlpapi -lws2_32" CFLAGS="-DWIN32 -DCYGWIN -D__USE_W32_SOCKETS -D__INSIDE_CYGWIN_NET__ -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0503 -g" OPENSSL_CRYPTO_CFLAGS=-I/usr/include OPENSSL_CRYPTO_LIBS="-L/usr/lib -lcrypto" OPENSSL_SSL_CFLAGS=-I/usr/include OPENSSL_SSL_LIBS="-L/usr/lib -lssl" ./configure --disable-lzo --disable-pkcs11 --disable-plugin-auth-pam --disable-plugin-down-root
make
cp src/openvpn/.libs/openvpn.exe /usr/bin
</pre><p>
Now, build ipwin.exe which used to manage slapos network. If you have msvc build environments, build the solution "D:/slapos/opt/git/slapos.packages/windows/ipwin/ipwin.sln" as your perfer. If you have no idea about msvc, do as the following steps:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Install Microsoft Visual C++ 2008 Express Edition or later version, you can download package from <a class="ulink" href="http://www.microsoft.com/visualstudio/express" target="_top">http://www.microsoft.com/visualstudio/express</a>, it's free.</p></li><li class="listitem"><p>If you're running X64 environments, install Microsoft Windows SDK v7.0. You can download the package from <a class="ulink" href="http://download.microsoft.com/download/2/E/9/2E911956-F90F-4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso" target="_top">http://download.microsoft.com/download/2/E/9/2E911956-F90F-4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso</a>.</p></li><li class="listitem"><p>Double click D:/slapos/opt/git/slapos.packages/windows/ipwin/ipwin/build.bat, be sure there is no error. This script assumes your vcvarsall.bat installed at "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat", and setenv.cmd installed at "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" (required only for x64 platform), if not, please edit the script as your installed path.</p></li></ul></div><p>
</p><p>
Then generate user-guide.html from using-slapos-in-windows.xml, generally you need not do this, just copy this file (you're looking now) to /opt/git/slapos.package/windows/docs. If you really want to generate the document by your self, make sure docbook-utils package installed in the Cygwin. Refer to <a class="xref" href="#package-docbook-utils" title="Note">Note</a> to know what about docbook-utils.
</p><pre class="programlisting">
cd /opt/git/slapos.package/windows/docs
# Before run make, be sure there is the file /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl, if not, find it first
# find /usr/share -name docbook.xsl
# Then replace the old file name with this one in the ./Makefile, then run make
make
</pre><p>
Download pyOpenSSL-0.13.tar.gz, miniupnpc-1.8.tar.gz,
</p><pre class="programlisting">
mkdir -p /opt/downloads
cd /opt/downloads
wget --no-check-certificate https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.13.tar.gz#md5=767bca18a71178ca353dff9e10941929
wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz -O miniupnpc-1.8.tar.gz
</pre><p>
Get re6stnet for cygwin
</p><pre class="programlisting">
cd /opt/git
(cd re6stnet ; git pull) || git clone -b cygwin http://git.erp5.org/repos/re6stnet.git
cd re6stnet
python setup.py sdist
</pre><p>
Get the icons and openvpn drivers, if you use 32-bit windows, uncomment the comment line to download openvpn-driver-i386.tar.gz other than openvpn-driver-x86_64.tar.gz:
</p><pre class="programlisting">
cd /opt
wget http://www.dashingsoft.com/products/slapos/images.tar.gz
wget http://www.dashingsoft.com/products/slapos/openvpn-driver-x64.tar.gz -O openvpn-driver.tar.gz
# wget http://www.dashingsoft.com/products/slapos/openvpn-driver-X86.tar.gz -O openvpn-driver.tar.gz
tar xzf images.tar.gz --no-same-owner
tar xzf openvpn-driver.tar.gz --no-same-owner
</pre><p>
Get configure template file:
</p><pre class="programlisting">
wget http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/slapos.cfg.example -O /opt/slapos/slapos.cfg.example
wget http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/slapos-client.cfg.example -O /opt/slapos/slapos-client.cfg.example
</pre><p>
</p></div><div class="section" title="4.4. Making installer"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256362"></a>4.4. Making installer</h2></div></div></div><p>We use Inno-Setup sripts to genarate microsoft installer, so we need install inno setup first. You can download the installer from <a class="ulink" href="http://www.innosetup.com" target="_top">http://www.innosetup.com</a>, then install inno-setup in you computer</p><p>Then click Start -&gt; Inno Setup 5 -&gt; Inno Setup Compiler, to open inno setup.</p><p>In the inno setup window, click File -&gt; Open, select the script: /opt/git/slapos.package/windows/scripts/slapos-all-in-one.iss</p><p>In the section "Setup", there are some options:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>OutputDir: the generated installer will be saved here</p></li><li class="listitem"><p>OutputBaseFilename: the prefix of output installer</p></li><li class="listitem"><p>SourceDir: it's a very important option. It's the root path of all the relative path in the section "Files"</p></li></ul></div><p>
In the section "Files", to be sure all the source files are exsiting in your computer, for example
</p><pre class="programlisting">
Source: "images\slapos.ico"; DestDir: "{app}\cygwin\etc\slapos\images";
</pre><p>
Assum SourceDir in the section "Setup" is "D:\slapos", the builder will find "D:\slapos\images\slapos.ico" as the source, so this file should be exsited.
</p><p>Click menu Build -&gt; Compile, then wait for the building process finished. You can check the installer in the OutputDir.</p><p>There is another script "slapos.iss", it used to build network installer. All-in-one installer will include all the files, so no internet connection required. However network installer need internet connection to download the files and packages. It's remarkable smaller than all-in-one installer.</p></div></div><div class="chapter" title="Chapter 5. Run SlapOS From Sources"><div class="titlepage"><div><div><h2 class="title"><a name="ch_run_slapos_from_sources"></a>Chapter 5. Run SlapOS From Sources</h2></div></div></div><p>This chapter describes how to run slapos slave node from sources in the windows.</p><p>First follow the instructions in the above chapter <a class="xref" href="#ch_generate_window_installer" title="Chapter 4. Generating windows installer from sources">Chapter 4, <i>Generating windows installer from sources</i></a>, except the last section Making Installer.</p><p>Next register to slapos community to get client and computer certificate and key files, refer to <a class="xref" href="#sec_configure_slapos" title="3.1. Configure SlapOS">Section 3.1, &#8220;Configure SlapOS&#8221;</a>.</p><p>Then open cygwin box as Administrator, if the current user isn't Administrator, then right click cygwin icon, click Run As Administrator. Be suer you have enough rights to run the following commands:
</p><pre class="programlisting">
(cd /opt/downloads; cp pyOpenSSL-0.13.tar.gz miniupnpc-1.8.tar.gz /)
mkdir -p /etc/slapos/scripts
/usr/local/bin/slapos-configure.sh
/usr/local/bin/slapos-node.sh
</pre><p>
If there are some errors when run both of scripts, fix them and run again, until no any error reported, and now you can run any slapos command in this terminal.
</p></div><div class="chapter" title="Chapter 6. SlapOS Sources Changed For Windows"><div class="titlepage"><div><div><h2 class="title"><a name="id9256499"></a>Chapter 6. SlapOS Sources Changed For Windows</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id9256603">6.1. How to upgrade the sources</a></span></dt><dt><span class="section"><a href="#id9256652">6.2. How to upgrade installer</a></span></dt><dt><span class="section"><a href="#id9256662">6.3. Merge sources to master branch</a></span></dt></dl></div><p>There are so many slapos sources changed for Windows. In the branch 'cygwin-share' in the slapos.git:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Change the buildout.cfg files for components, softwares and stack</p></li><li class="listitem"><p>Add patch files for building some component</p></li><li class="listitem"><p>Patch recipe slapos.cookbook</p></li></ul></div><p>
Re6stnet for windows:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Branch 'cygwin' in the re6stnet.git</p></li><li class="listitem"><p>Babeld package for cygwin, in branch 'cygwin' of slapos.package.git, location: windows/babeld</p></li><li class="listitem"><p>OpenVPN package for cygwin, in branch 'cygwin' of slapos.package.git, location: windows/openvpn</p></li></ul></div><p>
In the slapos.core.git:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Add branch 'cygwin'</p></li></ul></div><p>
In the slapos.package.git, add branch 'cygwin', it includes most of sources for cygwin:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>babeld</p></li><li class="listitem"><p>docs</p></li><li class="listitem"><p>openvpn</p></li><li class="listitem"><p>netreport</p></li><li class="listitem"><p>ipwin</p></li><li class="listitem"><p>psutils</p></li><li class="listitem"><p>inotifyw</p></li><li class="listitem"><p>patches</p></li><li class="listitem"><p>scripts</p></li></ul></div><p>
</p><div class="section" title="6.1. How to upgrade the sources"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256603"></a>6.1. How to upgrade the sources</h2></div></div></div><p>Update sources in the slapos.git, then push it</p><p>Update sources in the slapos.core.git, then push it</p><p>Update sources in the re6stnet.git, then push it</p><p>Update sources in the slapos.package.git, then push it.</p><p>Update egg psutil, for example, upgrade from 0.6.1 to 1.0.0,
</p><pre class="programlisting">
wget http://psutil.googlecode.com/files/psutil-1.0.0.tar.gz
tar xzf psutil-1.0.0.tar.gz
cd psutil-1.0.0
patch -p1 &lt; /opt/git/slapos.package/windows/patches/psutil-0.6.2.patch
# change the version to 1.0.1 in the psutil/__init__.py
python setup.py sdist
</pre><p>
Then upload the source packages dist/psutil-1.0.1.tar.gz to http://www.nexedi.org/static/packages/source/
</p><p>Update egg netifaces, same as psutil, except use patch file netifaces-0.8-1-cygwin.patch</p></div><div class="section" title="6.2. How to upgrade installer"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256652"></a>6.2. How to upgrade installer</h2></div></div></div><p>Redo all the action in the chapter Generate Installer For Windows</p></div><div class="section" title="6.3. Merge sources to master branch"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id9256662"></a>6.3. Merge sources to master branch</h2></div></div></div><p>merge cygwin to master in the slapos.core.git</p><p>merge cygwin to master in the slapos.package.git</p><p>merge cygwin-share to master in the slapos.git</p><p>merge cygwin to master in the re6stnet.git</p></div></div><div class="appendix" title="Appendix A. Cygwin Required Packages List"><div class="titlepage"><div><div><h2 class="title"><a name="appendix_cygwin_packages"></a>Appendix A. Cygwin Required Packages List</h2></div></div></div><p>The following packages are requied by SlapOS Node
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Devel/autobuild</p></li><li class="listitem"><p>Devel/autoconf</p></li><li class="listitem"><p>Devel/automake</p></li><li class="listitem"><p>Net/autossh</p></li><li class="listitem"><p>Devel/binutils</p></li><li class="listitem"><p>Devel/bison</p></li><li class="listitem"><p>Utils/bzip2<sup></sup></p></li><li class="listitem"><p>Net/ca-certificates</p></li><li class="listitem"><p>Admin/cron</p></li><li class="listitem"><p>Net/curl</p></li><li class="listitem"><p>Devel/cygport</p></li><li class="listitem"><p>Admin/cygrunsrv</p></li><li class="listitem"><p>Utils/file<sup>*</sup></p></li><li class="listitem"><p>Devel/flex</p></li><li class="listitem"><p>Devel/gcc4</p></li><li class="listitem"><p>Utils/gdbm</p></li><li class="listitem"><p>Devel/libgdbm-devel</p></li><li class="listitem"><p>Devel/gettext<sup>*</sup></p></li><li class="listitem"><p>Devel/gettext-devel</p></li><li class="listitem"><p>Devel/git</p></li><li class="listitem"><p>GNOME/libglib2.0-devel</p></li><li class="listitem"><p>GNOME/libglib2.0_0</p></li><li class="listitem"><p>Libs/libexpat1</p></li><li class="listitem"><p>Libs/libexpat1-devel</p></li><li class="listitem"><p>Libs/libmpfr-devel</p></li><li class="listitem"><p>Libs/libmpfr4</p></li><li class="listitem"><p>Libs/libsqlite3-devel</p></li><li class="listitem"><p>Libs/libsqlite3_0</p></li><li class="listitem"><p>Devel/libtool</p></li><li class="listitem"><p>Devel/libwrap-devel</p></li><li class="listitem"><p>Libs/libxml2</p></li><li class="listitem"><p>Libs/libxml2-devel</p></li><li class="listitem"><p>Libs/libxslt</p></li><li class="listitem"><p>Libs/libxslt-devel</p></li><li class="listitem"><p>Devel/make</p></li><li class="listitem"><p>Interpreters/m4</p></li><li class="listitem"><p>Devel/libncurses-devel</p></li><li class="listitem"><p>Devel/libncursesw-devel</p></li><li class="listitem"><p>Utils/patch</p></li><li class="listitem"><p>Utils/patchutils</p></li><li class="listitem"><p>Devel/pkg-config</p></li><li class="listitem"><p>Python/python<sup>2.7</sup></p></li><li class="listitem"><p>Python/python-openssl</p></li><li class="listitem"><p>Python/python-setuptools</p></li><li class="listitem"><p>Net/openssh</p></li><li class="listitem"><p>Devel/openssl-devel</p></li><li class="listitem"><p>Libs/libopenssl098</p></li><li class="listitem"><p>Libs/libopenssl100</p></li><li class="listitem"><p>Libs/popt</p></li><li class="listitem"><p>Devel/readline<sup>*</sup></p></li><li class="listitem"><p>Database/sqlite3</p></li><li class="listitem"><p>Devel/swig</p></li><li class="listitem"><p>Admin/syslog-ng</p></li><li class="listitem"><p>Devel/zlib-devel</p></li><li class="listitem"><p>Editor/vim</p></li><li class="listitem"><p>Web/wget</p></li></ul></div><p>
</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="package-docbook-utils"></a>Note</h3><p>
There is another package: Text/docbook-utils, it only used to generate user-guide.html from source file. But this package will increase required disk size remarkable, because many dependent packages are installed by Cygwin, so it recommand not to check this package when building slapos source or the installer. Only you really need to build the document, then install this package from cygwin setup gui interface by double clicking setup.exe downloaded from cygwin.com</p></div><p>
</p></div></div></body></html>
...@@ -208,8 +208,6 @@ autoreconf && ...@@ -208,8 +208,6 @@ autoreconf &&
ac_cv_type_socklen_t=yes IFCONFIG="C:/WINDOWS/system32" LDFLAGS="-liphlpapi -lws2_32" CFLAGS="-DWIN32 -DCYGWIN -D__USE_W32_SOCKETS -D__INSIDE_CYGWIN_NET__ -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0503 -g" OPENSSL_CRYPTO_CFLAGS=-I/usr/include OPENSSL_CRYPTO_LIBS="-L/usr/lib -lcrypto" OPENSSL_SSL_CFLAGS=-I/usr/include OPENSSL_SSL_LIBS="-L/usr/lib -lssl" ./configure --disable-lzo --disable-pkcs11 --disable-plugin-auth-pam --disable-plugin-down-root && ac_cv_type_socklen_t=yes IFCONFIG="C:/WINDOWS/system32" LDFLAGS="-liphlpapi -lws2_32" CFLAGS="-DWIN32 -DCYGWIN -D__USE_W32_SOCKETS -D__INSIDE_CYGWIN_NET__ -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0503 -g" OPENSSL_CRYPTO_CFLAGS=-I/usr/include OPENSSL_CRYPTO_LIBS="-L/usr/lib -lcrypto" OPENSSL_SSL_CFLAGS=-I/usr/include OPENSSL_SSL_LIBS="-L/usr/lib -lssl" ./configure --disable-lzo --disable-pkcs11 --disable-plugin-auth-pam --disable-plugin-down-root &&
make) || csih_error "make openvpn failed" make) || csih_error "make openvpn failed"
(cd /opt/git/slapos.package/windows/docs && wget http://dashingsoft.com/products/slapos/using-slapos-in-windows.html)
wget --no-check-certificate https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.13.tar.gz#md5=767bca18a71178ca353dff9e10941929 -O /opt/downloads/pyOpenSSL-0.13.tar.gz wget --no-check-certificate https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.13.tar.gz#md5=767bca18a71178ca353dff9e10941929 -O /opt/downloads/pyOpenSSL-0.13.tar.gz
wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz -O /opt/downloads/miniupnpc-1.8.tar.gz wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz -O /opt/downloads/miniupnpc-1.8.tar.gz
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment