tis-seadrive 0.9.5-11

  • package : tis-seadrive
  • version : 0.9.5-11
  • architecture : x64
  • locale :
  • description : Seafile Drive Client for Windows. Seadrive is Seafile client which acts like system drive. (Seafile ltd.) The Drive client enables you to access files on the server without syncing to local disk. It works like a network drive. Requires Seafile Server 6.0.0+. On Windows 7, requires Windows patch KB3033929.
  • maintainer : Hubert TOUVET
  • date : 2018-09-20 12:33:02
  • min_wapt_version : 1.5.0
  • min_os_version : 6.1.0
  • max_os_version :
  • impacted_process : seadrive.exe,seadrive-gui.exe

setup.py

# -*- coding: utf-8 -*-
from setuphelpers import *
import wmi
import time

uninstallkey = []

key='{56e06ea2-e0bf-401e-8487-18685cde6ed9}'
min_version='0.9.5'
exe = 'seadrive-%s.exe' % min_version

def kb_is_installed(kb):
    print('Looking for installed KB....')
    qfe = wmi.WMI().Win32_QuickFixEngineering
    kbs = qfe.query(HotFixID=kb)
    if kbs:
        return kbs[0]
    else:
        # safer..
        return True

class EnsureWUAServRunning(object):
    """Context object to run wauserv in manual mode"""
    # https://msdn.microsoft.com/en-us/library/aa394418(v=vs.85).aspx#properties
    def __enter__(self):
        print ("Ensure wuauserv Auto Update option is disabled")
        self.old_au_options = registry_readstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update','AUOptions',0)
        c = wmi.WMI()
        for service in c.Win32_Service (Name='wuauserv'):
            self.wuaserv_start_mode = service.StartMode
            self.wuaserv_started = service.Started
            service.ChangeStartMode(StartMode="manual")
            service.StartService()

        start = time.time()
        for service in c.Win32_Service (Name='wuauserv'):
            while not service.Started and time.time() - start < 10:
                time.sleep(1)
            if not service.Started:
                raise Exception('Unable to start wuauserv')

        return self

    def __exit__(self,type, value, tb):
        print ("re-enabling wuauserv previous state: %s" % self.old_au_options)
        registry_set(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update','AUOptions',self.old_au_options)
        c = wmi.WMI()
        for service in c.Win32_Service (Name='wuauserv'):
            if not self.wuaserv_started:
                service.StopService()
            service.ChangeStartMode(StartMode=self.wuaserv_start_mode)

        start = time.time()
        for service in c.Win32_Service (Name='wuauserv'):
            while service.Started and time.time() - start < 10:
                time.sleep(1)

def install():

    if need_install(key=key,min_version=min_version,force=force):
        print('installing Seadrive')
        if windows_version()>=WindowsVersions.Windows7 and windows_version()<WindowsVersions.Windows8:
            if not kb_is_installed('KB3033929'):
                print('Instaling required KB3033929')
                with EnsureWUAServRunning():
                    # 2359302 : patch already installed
                    run('wusa.exe /quiet /norestart Windows6.1-KB3033929-x64.msu',accept_returncodes=[0,3010,2359302])
            else:
                print('Skipping install of KB3033929')


    print('installing seadrive exe')
    install_exe_if_needed(exe,'/S /NORESTART',
        key=key,min_version=min_version,accept_returncodes=[0,3010,1641])


def check_uninstall_key(key):
    if installed_softwares(uninstallkey=key):
        return dict(status='OK',msg=u'Uninstallkey %s present'%key,data=None)
    else:
        return dict(status='ERROR',msg=u'Uninstallkey %s not present'%key,data=None)

def print_audit(results):
    status = None
    for result in results:
        print(u'%s: %s' % (result['status'],result['msg']))
        if result['status'] == 'ERROR':
            status = 'ERROR'
        elif status is None and result['status'] == 'WARNING':
            status = 'WARNING'
    if status is None:
        status = 'OK'
    return status

def audit():
    result = []
    result.append(check_uninstall_key(key))
    return print_audit(result)


    

Changelog

0.9.5 (2018/09/10)
==================

    [fix, Win] Fix support for some SSL CA
    Redirect to https if user accidentally input server's address with http but the server is actually use http
    [fix, Win] Show a tooltip that the Windows system maybe rebooted during upgrading drive client
    [fix, Mac] Fix permission problems during installation on Mac 10.13+

0.9.4 (2018/08/18)
==================

    [Win] No longer depends on .Net framework
    [Mac] Support file search in Finder
    [Win] Fix loading of HTTPS certifications

0.9.3 (2018/06/19)
==================

    [Win] Show syncing status at the top level folders
    [fix] Fix sometimes logout/login lead to empty drive folder
    Support change cache folder
    Add "open file/open folder" in search window
    Set automatical login to true in SSO mode
    [Mac] Fix compability with AirDrop

0.9.2 (2018/05/05)
==================

    Fix a bug that causing SeaDrive crash

0.9.1 (2018/04/24)
==================

    Fix a bug that causing crash when file search menu is clicked

0.9.0 (2018/04/24)
==================

    Libraries are displayed under three folders "My Libraries", "Group Libraries", "Shared libraries"
    [fix] Fix a bug in cleaning cache
    [Win] Update the kernel drive
    Improve syncing notification messages
    [Mac] Include the kernel drive with the SeaDrive package
    [Mac] Add Finder sidebar shortcut
    Add file search

0.8.6 (2018/03/19)
==================

    [fix] Fix compatibility with Visio and other applications by implementing a missing system API

0.8.5 (2018/01/03)
===========

[fix] Fix SeaDrive over RDP in Windows 10/7
[fix] Fix SeaDrive shell extension memory leak
[fix] Fix duplicated folder/files shown in Finder.app (macOS)
[fix] Fix file cache status icon for MacOS
0.8.4 (2017/12/01)
[fix] Fix Word/Excel files can't be saved in Windows 10
Add "download" context menu to explicitly download a file
Change "Shibboleth" to "Single Sign On"

0.8.3 (2017/11/24)
=================
[fix] Fix deleted folder recreated issue
Improve UI of downloading/uploading list dialog

0.8.1 (2017/11/03)
=====================
Use "REMOVABLE" when mount the drive disk
Prevent creating "System Volume Information"
Some UI fixes

0.8.0 (2017/09/16)
=================
[fix] Reuse old drive letter after SeaDrive crash
[fix] Fix rename library back to old name when it is changed in the server
[fix] Fix sometimes network can not reconnected after network down
Change default block size to 8MB
Make auto-login as default
Remount SeaDrive when it is unmounted after Windows hibernate

0.7.1 (2017/06/23)
=======================
[fix] Fix a bug that causing client crash

0.7.0 (2017/06/07)
===================
Add support for multi-users using SeaDrive on a single desktop. But different users must choose different drive letters.
Improve write performance
[fix] When a non-cached file is locked in the server, the "lock" icon will be shown instead of the "cloud" icon.
Add "automatically login" option in login dialog
Add file transfer status dialog.

0.6.2 (2017/04/22)
[fix] Fix after moving a file to a newly created sub folder, the file reappear when logout and login
Refresh current folder and the destination folder after moving files from one library to another library
[fix] Fix file locking not work
[fix] Fix sometimes files can't be saved

Known issues

In version 0.5.1, we add the feature that the mounted drive is only visible to the current user, so some exe files can't be executed if stored in the drive because it needs admin privilege to run
In version 0.5.1, rename a non-cached folder or file will lead to sync error.
In version 0.5.0 Copy exe files to SeaDrive on Win 7 will freeze the explorer

0.6.1 (2017/03/27)
==================
[fix] Don't show a popup notification to state that a file can't be created in S: because a few programs will automatically try to create files in S:

0.6.0 (2017/03/25)
==================
Improve syncing status icons
Show error in the interface when there are syncing errors
Don't show rorate icon when downloading/uploading metadata
[fix] Don't download files when the network is not connected

0.5.2 (2017/03/09)
===================
[fix] Rename a non-cached folder or file will lead to sync error.

0.5.1 (2017/02/16)
==================
[fix] Fix copying exe files to SeaDrive on Win 7 will freeze the explorer
The mounted drive is only visible to the current user
Add popup notification when syncing is done
[fix] Fix any change in the settings leads to a drive letter change

0.5.0 (2017/01/18)
==================
Improve stability
Support file locking
Support sub-folder permission
[fix] Fix 1TB limitation
User can choose disk letter in settings dialog
Support remote wipe
[fix] Use proxy server when login
Click system tray icon open SeaDrive folder
Support application auto-upgrade

0.4.2 (2016/12/16)
===================
[fix] Fix SeaDrive initialization error during Windows startup

0.4.1 (2016/11/07)
===================
[fix] Fix a bug that lead to empty S: drive after installation.

0.4.0 (2016/11/05)
==================
[fix] Fix a bug that leads to generation of conflict files when editing
Add translations
Update included Dokany library to 1.0
Don't show encrypted libraries even in command line
Show permission error when copy a file to the root
Show permission error when try to modify a read-only folder
Show permission error when try to delete a folder in the root folder

0.3.1 (2016/10/22)
===================
Fix link for license terms
Use new system tray icon
Add notification for cross-libraries file move

0.3.0 (2016/10/14)
==================
Support selecting Drive letter
Don't create folders like msiS50.tmp on Windows
[fix] Fix cache size limit settings
Correctly show the storage space if the space is unlimited on the server side.
0.2.0 (2016/09/15)
Add shibboleth support
Show a dialog notify the client is downloading file list from the server during initialisation
Show transfer rate
[fix] Fix a bug that lead to the file modification time to be empty
[fix] Fix a bug that lead to files not be uploaded

0.1.0 (2016/09/02)
==================
Initial release


    

manifest.sha256

seadrive-0.9.5.exe 11df5a4bdbf65f3c8a52736b3ef62afcde22a83e91bf1b3d8f8484bfaab5aa3e
WAPT/icon.png 44da9c559bcbcd223ca9eb0aee9ec76f14c379a5d10b71dc51d64a6989fa9097
WAPT/certificate.crt 13fb474c5c23c135a77aba592eb8821b9ecbcc463f5b7312312b87b20eac6779
WAPT/wapt.psproj 3824006a38918a179ecd0f15962b870f0a13e70e5f97c1c3f829a97f0e0da5df
setup.py 118a71b84b64b9a51428199316bc26615c2b2565c8557ca767c61e7d92498558
Windows6.1-KB3033929-x64.msu 5318587007edb6c8b29310ff18da479a162b486b9101a7de735f94a70dbc3b31
WAPT/control fc4aac2683d46d5044704a93f35da493528d9f70a6c9eff9672746bdd2f7c35b
WAPT/changelog.txt d21bd71cf0f9ebb8e9157deab9e50104b01787ae998f119d24cdb40a9ab86494