From: robk-tahoe <robk-tahoe@allmydata.com>
Date: Thu, 17 Jan 2008 02:15:35 +0000 (-0700)
Subject: add winfuse plugin to installer
X-Git-Tag: allmydata-tahoe-0.8.0~306
X-Git-Url: https://git.rkrishnan.org/specifications/%5B/%5D%20/uri/reliability?a=commitdiff_plain;h=6e8fe30859add46fa86b814998d7cfbf2f7f7137;p=tahoe-lafs%2Ftahoe-lafs.git

add winfuse plugin to installer

this adds the latest build of mike's winfuse plugins, now also running as
a windows service (and using the node.url, private/root_dir.cap files from
the noderoot specified by the registry) into the install process.
---

diff --git a/windows/confwiz.py b/windows/confwiz.py
index 334c0d71..39669ae0 100644
--- a/windows/confwiz.py
+++ b/windows/confwiz.py
@@ -1,7 +1,8 @@
 
 BACKEND_URL = 'https://www-test.allmydata.com/native_client2.php'
 REGISTER_PAGE = 'https://www-test.allmydata.com/register'
-WINSVC_NAME = 'Tahoe'
+TAHOESVC_NAME = 'Tahoe'
+WINFUSESVC_NAME = 'Allmydata Tahoe SMB'
 
 import os
 import sys
@@ -173,17 +174,21 @@ class LoginPanel(wx.Panel):
 
         # start service etc.
         if sys.platform == 'win32':
-            try:
-                import win32service
-                import win32serviceutil as wsu
-                if wsu.QueryServiceStatus(WINSVC_NAME)[1] != win32service.SERVICE_RUNNING:
-                    wsu.StartService(WINSVC_NAME)
-            except:
-                DisplayTraceback('Failed to start windows service')
+            self.start_windows_service(TAHOESVC_NAME)
+            self.start_windows_service(WINFUSESVC_NAME)
 
         # exit
         self.parent.parent.Close()
 
+    def start_windows_service(self, svc_name):
+        try:
+            import win32service
+            import win32serviceutil as wsu
+            if wsu.QueryServiceStatus(svc_name)[1] != win32service.SERVICE_RUNNING:
+                wsu.StartService(svc_name)
+        except:
+            DisplayTraceback('Failed to start windows service "%s"' % (svc_name,))
+
 class RegisterPanel(wx.Panel):
     def __init__(self, parent):
         wx.Panel.__init__(self, parent, -1)
diff --git a/windows/installer.tmpl b/windows/installer.tmpl
index db104432..ea3b4359 100644
--- a/windows/installer.tmpl
+++ b/windows/installer.tmpl
@@ -24,6 +24,7 @@ OutputBaseFilename=Allmydata_Tahoe_Setup_v%(major)d_%(minor)d_%(point)d_%(nano)d
 ; contents of 'binaries' dir. (consolidated build target)
 Source: "*.*"; DestDir: "{app}\Install"; Flags: restartreplace replacesameversion uninsrestartdelete
 Source: ".\web\*.*"; DestDir: "{app}\Install\web"; Flags: recursesubdirs
+Source: ".\winfuse\*.*"; DestDir: "{app}\Install\winfuse"; Flags: recursesubdirs
 
 [Dirs]
 Name: "{app}\noderoot"
@@ -35,14 +36,17 @@ Name: "{group}\Allmydata Help"; Filename: "http://www.allmydata.com/help.php"
 
 [Run]
 ; Things performed before the final page of the installer
-Filename: "{app}\Install\tahoesvc.exe"; Parameters: "-install"; Flags: runhidden
-Filename: "{app}\Install\tahoe.exe"; Parameters: "create-client ""{app}\noderoot"""; Description: "Set the node into debug logging mode"; Flags: runhidden
+Filename: "{app}\Install\tahoesvc.exe"; Parameters: "-install -auto"; Flags: runhidden
+Filename: "{app}\Install\tahoe.exe"; Parameters: "create-client ""{app}\noderoot"""; Flags: runhidden
+Filename: "{app}\Install\winfuse\InstallUtil.exe"; Parameters: """{app}\Install\winfuse\WinFUSE.exe"""; Flags: runhidden
 Filename: "{app}\Install\confwiz.exe"; Flags: hidewizard
 ;Filename: "{app}\Install\ReadMe.txt"; Description: "View the ReadMe file"; Flags: unchecked postinstall nowait shellexec skipifdoesntexist
 
 [UninstallRun]
 ; Performed before the uninstaller runs to undo things
+Filename: "{sys}\net.exe"; Parameters: "stop ""Allmydata Tahoe SMB"""; Flags: runhidden
 Filename: "{sys}\net.exe"; Parameters: "stop Tahoe"; Flags: runhidden
+Filename: "{app}\Install\winfuse\InstallUtil.exe"; Parameters: "/uninstall ""{app}\Install\winfuse\WinFUSE.exe"""; Flags: runhidden
 Filename: "{app}\Install\tahoesvc.exe"; Parameters: "-remove"; Flags: runhidden
 ;Filename: "http://www.allmydata.com/redirect/uninstallsurvey.php?build=%(build)s"; Flags: shellexec
 
diff --git a/windows/setup.py b/windows/setup.py
index df2f2930..230aa4d3 100644
--- a/windows/setup.py
+++ b/windows/setup.py
@@ -59,6 +59,7 @@ setup_args = {
         ('.', [
         ],),
         ('web', glob.glob('../src/allmydata/web/*')),
+        ('winfuse', glob.glob('./winfuse/*')),
     ],
     'zipfile' : 'library.zip',
     'options': {
diff --git a/windows/winfuse/InstallUtil.exe b/windows/winfuse/InstallUtil.exe
new file mode 100644
index 00000000..dbe99670
Binary files /dev/null and b/windows/winfuse/InstallUtil.exe differ
diff --git a/windows/winfuse/Interface.dll b/windows/winfuse/Interface.dll
new file mode 100644
index 00000000..82136d4e
Binary files /dev/null and b/windows/winfuse/Interface.dll differ
diff --git a/windows/winfuse/MicroKernel.dll b/windows/winfuse/MicroKernel.dll
new file mode 100644
index 00000000..41558114
Binary files /dev/null and b/windows/winfuse/MicroKernel.dll differ
diff --git a/windows/winfuse/NamedPipe.dll b/windows/winfuse/NamedPipe.dll
new file mode 100644
index 00000000..b737b32e
Binary files /dev/null and b/windows/winfuse/NamedPipe.dll differ
diff --git a/windows/winfuse/PortalSMB.dll b/windows/winfuse/PortalSMB.dll
new file mode 100644
index 00000000..5025e61f
Binary files /dev/null and b/windows/winfuse/PortalSMB.dll differ
diff --git a/windows/winfuse/TahoeFS.dll b/windows/winfuse/TahoeFS.dll
new file mode 100644
index 00000000..528bd24f
Binary files /dev/null and b/windows/winfuse/TahoeFS.dll differ
diff --git a/windows/winfuse/UserLogon.dll b/windows/winfuse/UserLogon.dll
new file mode 100644
index 00000000..fa85a507
Binary files /dev/null and b/windows/winfuse/UserLogon.dll differ
diff --git a/windows/winfuse/WinFUSE.exe b/windows/winfuse/WinFUSE.exe
new file mode 100644
index 00000000..55068fd6
Binary files /dev/null and b/windows/winfuse/WinFUSE.exe differ
diff --git a/windows/winfuse/WinFUSE.exe.config b/windows/winfuse/WinFUSE.exe.config
new file mode 100644
index 00000000..7543a9c8
--- /dev/null
+++ b/windows/winfuse/WinFUSE.exe.config
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+
+  <configSections>
+    <section name="microkernel" type="MicroKernel.CustomSection, MicroKernel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
+ 
+  </configSections>
+
+  <microkernel>
+    <references>
+      <!-- Must be set if no DomainController is used for Authentification, otherwise it can be left empty -->
+      <local description="Logon"   keyType="Suchwerk.Interface.IAuth"       assembly="UserLogon" implementationType="Suchwerk.UserLogon"             singleton="true" />
+
+      <!-- Must be set. Is the IPC share that all CIFS server must provide. The implementation is done very simple -->
+      <local description="IPC$"    keyType="Suchwerk.Interface.IFilesystem" assembly="NamedPipe" implementationType="Suchwerk.Filesystem.Pipe"  singleton="true" />
+      
+      <!-- That's the CIFS server, must be included -->
+      <local description="SMBServer" keyType="Suchwerk.Interface.ISMBPortal" assembly="PortalSMB" implementationType="Suchwerk.Portal.SMB.SMB"       singleton="true" />
+      
+      <!-- Add here your IFilesystem implementations, the more you add, the more your server can provide 
+           The same IFilesystem implementation can be listed more than once, to provide different data views 
+           
+           To know with share was called, add then field, "parameter_constructor=true" and instead of the
+           parameter less standard constructor a constructor with the share name will be called -->
+      <local description="Tahoe"     keyType="Suchwerk.Interface.IFilesystem" assembly="TahoeFS"  implementationType="TahoeFS.TahoeFS" singleton="true" />
+     
+    </references>
+  </microkernel>
+
+</configuration>
+