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> +