diff --git a/extragear/kexi/kexi/FileAssociation.nsh b/extragear/kexi/kexi/FileAssociation.nsh new file mode 100644 --- /dev/null +++ b/extragear/kexi/kexi/FileAssociation.nsh @@ -0,0 +1,190 @@ +/* +_____________________________________________________________________________ + + File Association +_____________________________________________________________________________ + + Based on code taken from http://nsis.sourceforge.net/File_Association + + Usage in script: + 1. !include "FileAssociation.nsh" + 2. [Section|Function] + ${FileAssociationFunction} "Param1" "Param2" "..." $var + [SectionEnd|FunctionEnd] + + FileAssociationFunction=[RegisterExtension|UnRegisterExtension] + +_____________________________________________________________________________ + + ${RegisterExtension} "[executable]" "[extension]" "[description]" + +"[executable]" ; executable which opens the file format + ; +"[extension]" ; extension, which represents the file format to open + ; +"[description]" ; description for the extension. This will be display in Windows Explorer. + ; + + + ${UnRegisterExtension} "[extension]" "[description]" + +"[extension]" ; extension, which represents the file format to open + ; +"[description]" ; description for the extension. This will be display in Windows Explorer. + ; + +_____________________________________________________________________________ + + Macros +_____________________________________________________________________________ + + Change log window verbosity (default: 3=no script) + + Example: + !include "FileAssociation.nsh" + !insertmacro RegisterExtension + ${FileAssociation_VERBOSE} 4 # all verbosity + !insertmacro UnRegisterExtension + ${FileAssociation_VERBOSE} 3 # no script +*/ + + +!ifndef FileAssociation_INCLUDED +!define FileAssociation_INCLUDED + +!include Util.nsh + +!verbose push +!verbose 3 +!ifndef _FileAssociation_VERBOSE + !define _FileAssociation_VERBOSE 3 +!endif +!verbose ${_FileAssociation_VERBOSE} +!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE` +!verbose pop + +!macro FileAssociation_VERBOSE _VERBOSE + !verbose push + !verbose 3 + !undef _FileAssociation_VERBOSE + !define _FileAssociation_VERBOSE ${_VERBOSE} + !verbose pop +!macroend + + + +!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION + !verbose push + !verbose ${_FileAssociation_VERBOSE} + Push `${_DESCRIPTION}` + Push `${_EXTENSION}` + Push `${_EXECUTABLE}` + ${CallArtificialFunction} RegisterExtension_ + !verbose pop +!macroend + +!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION + !verbose push + !verbose ${_FileAssociation_VERBOSE} + Push `${_EXTENSION}` + Push `${_DESCRIPTION}` + ${CallArtificialFunction} UnRegisterExtension_ + !verbose pop +!macroend + + + +!define RegisterExtension `!insertmacro RegisterExtensionCall` +!define un.RegisterExtension `!insertmacro RegisterExtensionCall` + +!macro RegisterExtension +!macroend + +!macro un.RegisterExtension +!macroend + +!macro RegisterExtension_ + !verbose push + !verbose ${_FileAssociation_VERBOSE} + + Exch $R2 ;exe + Exch + Exch $R1 ;ext + Exch + Exch 2 + Exch $R0 ;desc + Exch 2 + Push $0 + Push $1 + + ReadRegStr $1 HKCR $R1 "" ; read current file association + StrCmp "$1" "" NoBackup ; is it empty + StrCmp "$1" "$R0" NoBackup ; is it our own + WriteRegStr HKCR $R1 "backup_val" "$1" ; backup current value +NoBackup: + WriteRegStr HKCR $R1 "" "$R0" ; set our file association + + ReadRegStr $0 HKCR $R0 "" + StrCmp $0 "" 0 Skip + WriteRegStr HKCR "$R0" "" "$R0" + WriteRegStr HKCR "$R0\shell" "" "open" + WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,0" +Skip: + WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"' + WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0" + WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"' + + Pop $1 + Pop $0 + Pop $R2 + Pop $R1 + Pop $R0 + + !verbose pop +!macroend + + + +!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall` +!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall` + +!macro UnRegisterExtension +!macroend + +!macro un.UnRegisterExtension +!macroend + +!macro UnRegisterExtension_ + !verbose push + !verbose ${_FileAssociation_VERBOSE} + + Exch $R1 ;desc + Exch + Exch $R0 ;ext + Exch + Push $0 + Push $1 + + ReadRegStr $1 HKCR $R0 "" + StrCmp $1 $R1 0 NoOwn ; only do this if we own it + ReadRegStr $1 HKCR $R0 "backup_val" + StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key + DeleteRegKey HKCR $R0 + Goto NoOwn + +Restore: + WriteRegStr HKCR $R0 "" $1 + DeleteRegValue HKCR $R0 "backup_val" + DeleteRegKey HKCR $R1 ;Delete key with association name settings + +NoOwn: + + Pop $1 + Pop $0 + Pop $R1 + Pop $R0 + + !verbose pop +!macroend + +!endif # !FileAssociation_INCLUDED diff --git a/extragear/kexi/kexi/NullsoftInstaller.nsi b/extragear/kexi/kexi/NullsoftInstaller.nsi new file mode 100644 --- /dev/null +++ b/extragear/kexi/kexi/NullsoftInstaller.nsi @@ -0,0 +1,247 @@ +; basic script template for NullsoftInstallerPackager +; +; Copyright 2010 Patrick Spendrin +; Copyright 2016 Kevin Funk +; Copyright 2018 Jarosław Staniek + +; registry stuff +!define regkey "Software\@{company}\@{productname}\@{version}" +!define uninstkey "Software\Microsoft\Windows\CurrentVersion\Uninstall\@{productname} @{version}" + +!define uninstall_string "Uninstall @{productname} @{version}" +!define uninstaller "${uninstall_string}.exe" + +BrandingText "Generated by Craft https://community.kde.org/Craft" + +;-------------------------------- + +XPStyle on +ShowInstDetails hide +ShowUninstDetails hide +ManifestDPIAware true + +Name "@{productname} @{version}" +Caption "$(^Name)" + +OutFile "@{setupname}" + +!define MULTIUSER_EXECUTIONLEVEL Highest +!define MULTIUSER_MUI +!define MULTIUSER_INSTALLMODE_COMMANDLINE +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "${regkey}" +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "Install_Mode" +!define MULTIUSER_INSTALLMODE_INSTDIR "@{productname}\@{version}" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "${regkey}" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install_Dir" + +;Start Menu Folder Page Configuration +Var StartMenuFolder +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${regkey}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${MULTIUSER_INSTALLMODE_INSTDIR}" + +;!define MULTIUSER_USE_PROGRAMFILES64 +@{multiuser_use_programfiles64} +;!define MULTIUSER_USE_PROGRAMFILES64 + +@{nsis_include_internal} +@{nsis_include} + +!include "MultiUser.nsh" +!include "MUI2.nsh" +!include "LogicLib.nsh" +!include "x64.nsh" +!include "process.nsh" +!include "FileAssociation.nsh" + +;!define MUI_ICON +@{installerIcon} +;!define MUI_ICON + +!insertmacro MUI_PAGE_WELCOME + +;!insertmacro MUI_PAGE_LICENSE +@{license} +;!insertmacro MUI_PAGE_LICENSE + +!insertmacro MULTIUSER_PAGE_INSTALLMODE +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder + +!define MUI_COMPONENTSPAGE_NODESC +;!insertmacro MUI_PAGE_COMPONENTS +@{sections_page} +;!insertmacro MUI_PAGE_COMPONENTS + +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!define MUI_FINISHPAGE_LINK "Visit @{productname} home page" +!define MUI_FINISHPAGE_LINK_LOCATION "@{website}" +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_FINISHPAGE_RUN "$WINDIR\explorer.exe" +!define MUI_FINISHPAGE_RUN_TEXT "Run @{productname}" +!define MUI_FINISHPAGE_RUN_PARAMETERS "$SMPROGRAMS\$StartMenuFolder\$(^Name).lnk" +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +SetDateSave on +SetDatablockOptimize on +CRCCheck on +SilentInstall normal + +InstallDir "@{defaultinstdir}\${MULTIUSER_INSTALLMODE_INSTDIR}" +InstallDirRegKey HKLM "${regkey}" "Install_Dir" + +Var /global ExistingInstallation + +Function .onInit + !insertmacro MULTIUSER_INIT + !if @{architecture} == "x64" + ${IfNot} ${RunningX64} + MessageBox MB_OK|MB_ICONEXCLAMATION "This installer can only be run on 64-bit Windows." + Abort + ${EndIf} + !endif + ReadRegStr $R0 HKLM "${regkey}" "Install_Dir" + ${IfNot} $R0 == "" + StrCpy $ExistingInstallation $R0 + ${EndIf} +FunctionEnd + +Function un.onInit + !insertmacro MULTIUSER_UNINIT +FunctionEnd + + ; GetParentDir + ; input, top of stack (e.g. C:\Program Files\Foo) + ; output, top of stack (replaces, with e.g. C:\Program Files) + ; modifies no other variables. + ; Usage: + ; Push "C:\Program Files\Directory\Whatever" + ; Call GetParent + ; Pop $R0 + ; ; at this point $R0 will equal "C:\Program Files\Directory" +Function un.GetParentDir + Exch $R0 + Push $R1 + Push $R2 + Push $R3 + + StrCpy $R1 0 + StrLen $R2 $R0 + loop: + IntOp $R1 $R1 + 1 + IntCmp $R1 $R2 get 0 get + StrCpy $R3 $R0 1 -$R1 + StrCmp $R3 "\" get + Goto loop + + get: + StrCpy $R0 $R0 -$R1 + + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd + +;-------------------------------- + +AutoCloseWindow false + + +; beginning (invisible) section +Section + ${IfNot} $ExistingInstallation == "" + ExecWait '"$ExistingInstallation\${uninstaller}" /S _?=$ExistingInstallation' + ${EndIf} + WriteRegStr HKLM "${regkey}" "Install_Dir" "$INSTDIR" + ; write uninstall strings + WriteRegStr SHCTX "${uninstkey}" "DisplayName" "$(^Name)" + WriteRegStr SHCTX "${uninstkey}" "UninstallString" '"$INSTDIR\${uninstaller}"' + WriteRegStr SHCTX "${uninstkey}" "DisplayIcon" "$INSTDIR\@{iconname}" + WriteRegStr SHCTX "${uninstkey}" "URLInfoAbout" "@{website}" + WriteRegStr SHCTX "${uninstkey}" "Publisher" "@{company}" + WriteRegStr SHCTX "${uninstkey}" "DisplayVersion" "@{version}" + + @{registy_hook} + + ; TODO: find a way to extend the default script + ; TODO? WriteRegStr HKCR "*\shell\OpenWith@{productname}\@{version}" "" "Edit with @{productname} @{version}" + ; TODO? WriteRegStr HKCR "*\shell\OpenWith@{productname}\@{version}\command" "" '"$INSTDIR\executable" "%V"' + + ${registerExtension} "$INSTDIR\@{assoc_executable}" "@{assoc_extension}" "@{assoc_description}" + + SetOutPath $INSTDIR + + +; package all files, recursively, preserving attributes +; assume files are in the correct places + + File /a "@{dataPath}" + File /a "@{7za}" + File /a "@{icon}" + nsExec::ExecToLog '"$INSTDIR\7za.exe" x -r -y "$INSTDIR\@{dataName}" -o"$INSTDIR"' + Delete "$INSTDIR\7za.exe" + Delete "$INSTDIR\@{dataName}" + + AddSize @{installSize} + + WriteUninstaller "${uninstaller}" +SectionEnd + +; create shortcuts +Section +SetShellVarContext all +!insertmacro MUI_STARTMENU_WRITE_BEGIN Application +CreateDirectory "$SMPROGRAMS\$StartMenuFolder" +SetOutPath $INSTDIR ; for working directory +@{shortcuts} +CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${uninstall_string}.lnk" "$INSTDIR\${uninstaller}" +!insertmacro MUI_STARTMENU_WRITE_END +SectionEnd + +; Uninstaller +; All section names prefixed by "Un" will be in the uninstaller + +UninstallText "This will uninstall $(^Name)." + +Section "Uninstall" +SetShellVarContext all + +!insertmacro EndProcessWithDialog + +${If} $MultiUser.InstallMode == "CurrentUser" + SetShellVarContext current +${EndIf} + +DeleteRegKey SHCTX "${uninstkey}" +DeleteRegKey SHCTX "${regkey}" + +!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder +RMDir /r "$SMPROGRAMS\$StartMenuFolder" + +; remove parent folder in the Start menu if it is @{productname}" and is completely empty +Push "$SMPROGRAMS\$StartMenuFolder" +Call un.GetParentDir +Call un.GetParentDir +Pop $R0 +StrCpy $R0 "$R0\@{productname}" +RMDir "$R0" ; remove parent folder of start menu if completely empty + +RMDir /r "$INSTDIR" + +; remove parent folder of the inst dir if it is @{productname}" and is completely empty +Push "$INSTDIR" +Call un.GetParentDir +Call un.GetParentDir +Pop $R0 +StrCpy $R0 "$R0\@{productname}" +RMDir "$R0" + +${unregisterExtension} "@{assoc_extension}" "@{assoc_description}" + +SectionEnd diff --git a/extragear/kexi/kexi/blacklist.txt b/extragear/kexi/kexi/blacklist.txt new file mode 100644 --- /dev/null +++ b/extragear/kexi/kexi/blacklist.txt @@ -0,0 +1,34 @@ +# blacklist for kexi + +# common app stuff +lib/.* +libexec/.* +share/.* +ssl/.* + +# Unused Qt modules +qml/.* +bin/org/kde/.* + +# unneeded LLVM artifacts +tools/msbuild/.* + +# unrelated +dev-utils/.* + +# other files +bin/dbus-env\.bat +bin/data/(?!(applications|color-schemes|dbus-1|icons|kexi|kf5/kcharselect|kf5/licenses|kf5/sonnet|kservices5|kservicetypes5|kstyle|locale|metainfo|mime|xdg))/.* +bin/data/icons/(breeze_cursors|breeze-dark|Breeze_Snow|hicolor|)/.* +bin/(audio|designer|geoservices|kpackage|mediaservice|org|position)/.* +bin/data/(wallpapers|kdevappwizard|knotifications5|katepart5|plasma)/.* + +# strip most executables +bin/(?!(kexi|kbuildsycoca5|update-mime-database|kioslave|QtWebProcess)).*\.exe +bin/(Qt5Designer.*|Qt5Test|Qt5Quick.*|testplug)\.dll +plugins/org\.kde.kdecoration2/.* +plugins/(audio|bearer|generic|kauth|kpackage|libexec|plasma|playlistformats|qmltooling|scenegraph|sensors|sensorgestures|texttospeech)/.* +plugins/platforms/(qdirect2d|qminimal|qoffscreen)\.dll +plugins/sqldrivers/(?!(qsqlite))\.dll +plugins/styles/qwindowsvistastyle\.dll +# no, needed by Qt5WebKit: bin/Qt5Sql\.dll diff --git a/extragear/kexi/kexi/kexi.py b/extragear/kexi/kexi/kexi.py --- a/extragear/kexi/kexi/kexi.py +++ b/extragear/kexi/kexi/kexi.py @@ -1,15 +1,39 @@ import info from CraftOS.osutils import OsUtils - +from CraftStandardDirs import CraftStandardDirs +import datetime +import os +import subprocess class subinfo(info.infoclass): def setTargets(self): self.versionInfo.setDefaultValues() + self.versionStrings = {} + self.versionSemantic = {} + + ver = '3.1' + #self.svnTargets[ver] = f"git://anongit.kde.org/kexi|{ver}" + self.versionStrings[ver] = '3.1.0 Preview' # TODO update on release + self.versionSemantic[ver] = '3.1.0' # TODO update on release + + ver = '3.2' # TODO update on release + #self.svnTargets[ver] = f"git://anongit.kde.org/kexi|{ver}" + self.versionStrings[ver] = '3.2.0 Preview' # TODO update on release + self.versionSemantic[ver] = '3.2.0' # TODO update on release + + ver = 'master' + #self.svnTargets[ver] = f"git://anongit.kde.org/kexi|master" + self.versionStrings[ver] = '3.3 Alpha' # TODO update on release + self.versionSemantic[ver] = '3.2.90' # TODO update on release self.description = "A visual database applications builder" self.displayName = "KEXI" + self.website = "http://kexi-project.org" self.options.configure.args = " -DBUILD_EXAMPLES=ON" + def registerOptions(self): + self.options.dynamic.registerOption("buildForDesktop", True) + def setDependencies(self): self.runtimeDependencies["virtual/base"] = None self.buildDependencies["kde/frameworks/extra-cmake-modules"] = None @@ -33,13 +57,16 @@ self.runtimeDependencies["extragear/kexi/kdb"] = None self.runtimeDependencies["extragear/kexi/kproperty"] = None self.runtimeDependencies["extragear/kexi/kreport"] = None - # Desktop only: - self.runtimeDependencies["kde/frameworks/tier2/kcompletion"] = None - self.runtimeDependencies["kde/frameworks/tier3/kio"] = None - self.runtimeDependencies["kde/frameworks/tier3/ktexteditor"] = None - self.runtimeDependencies["kde/frameworks/tier3/ktextwidgets"] = None - if OsUtils.isLinux(): - self.runtimeDependencies["kde/frameworks/tier2/kcrash"] = None + + if self.options.dynamic.buildForDesktop: + # Desktop only: + self.runtimeDependencies["kde/frameworks/tier2/kcompletion"] = None + self.runtimeDependencies["kde/frameworks/tier3/kio"] = None + self.runtimeDependencies["kde/frameworks/tier3/ktexteditor"] = None + self.runtimeDependencies["kde/frameworks/tier3/ktextwidgets"] = None + self.runtimeDependencies["kde/plasma/breeze"] = None + if OsUtils.isLinux(): + self.runtimeDependencies["kde/frameworks/tier2/kcrash"] = None from Package.CMakePackageBase import * @@ -49,13 +76,80 @@ def __init__(self): CMakePackageBase.__init__(self) + def preArchive(self): + for file in ["COPYING.DOC", "COPYING.LIB", "COPYING", "AUTHORS", "README.md", "README.PACKAGERS.md"]: + utils.copyFile(os.path.join(self.sourceDir(), file), + os.path.join(self.installDir(), file), False) + return super().preArchive() + def createPackage(self): - # TODO - #self.blacklist_file.append(os.path.join(self.packageDir(), 'blacklist.txt')) - self.defines["executable"] = "bin\\kexi.exe" - #self.defines["icon"] = os.path.join(self.packageDir(), "kexi.ico") + self.defines["version_semantic"] = self.subinfo.versionSemantic[self.subinfo.buildTarget] + ver = self.subinfo.versionStrings[self.subinfo.buildTarget] + isAlpha = ver.endswith("Alpha") + isPreview = "Preview" in ver + if isAlpha or isPreview: # add git hash and date for Alphas/Previews + oldwd = os.getcwd() + os.chdir(self.sourceDir()) + gitHash = subprocess.check_output( + ["git", "rev-parse", "--short", self.subinfo.buildTarget], + universal_newlines=True).strip() + oldwd = os.getcwd() + os.chdir(self.sourceDir()) + if isAlpha: + date = subprocess.check_output( + ["git", "show", "--no-patch", "--format=%ci", self.subinfo.buildTarget], + universal_newlines=True).strip().split(" ")[0] + elif isPreview: + date = str(datetime.date.today()) + os.chdir(oldwd) + ver = f"{ver} {date} ({gitHash})" + self.defines["version"] = ver + #default: self.defines["company"] = "KDE" + self.defines["assoc_executable"] = f"bin/kexi-{self.subinfo.buildTarget}.exe" + self.defines["assoc_extension"] = ".kexi" + self.defines["assoc_description"] = "KEXI project file" + self.defines["shortcuts"] = [ + {"name" : f"{self.subinfo.displayName} {self.defines['version']}", + "target" : self.defines["assoc_executable"], + "description" : self.subinfo.description} + ] + self.defines["icon"] = os.path.join(self.buildDir(), "src", "_source_var.ico") + self.defines["icon_png"] = os.path.join(self.sourceDir(), "kexi", "icons", "src", "data", "128-apps-kexi.png") + self.defines["license"] = os.path.join(self.sourceDir(), "COPYING.LIB") + # user-friendly filename + arch = '32' if CraftCore.compiler.isX86() else '64' + filename = f"{self.subinfo.displayName}_{self.defines['version']}_Win{arch}.exe".replace(' ', '_') + self.defines["setupname"] = os.path.join(self.packageDestinationDir(), filename) + + self.whitelist_file.append(os.path.join(self.packageDir(), "whitelist.txt")) + self.blacklist_file.append(os.path.join(self.packageDir(), 'blacklist.txt')) + + self.ignoredPackages.append("libs/hunspell") + self.ignoredPackages.append("data/hunspell-dictionaries") + self.ignoredPackages.append("libs/d3dcompiler") + self.ignoredPackages.append("libs/qt5/qttools") + self.ignoredPackages.append("libs/qt5/qtscript") + self.ignoredPackages.append("libs/qt5/qtquickcontrols2") + # no, needed by Qt5WebKit: self.ignoredPackages.append("libs/qt5/qtlocation") + # no, needed by Qt5WebKit: self.ignoredPackages.append("libs/qt5/qtmultimedia") + # no, needed by Qt5WebKit: self.ignoredPackages.append("libs/qt5/qtsensors") + # no, needed by Qt5WebKit: self.ignoredPackages.append("libs/qt5/qtwebchannel") + # no, needed by Qt5WebKit: self.ignoredPackages.append("qt-libs/phonon") + + # no, needed by something: self.ignoredPackages.append("kde/frameworks/tier1/sonnet") + self.ignoredPackages.append("kde/frameworks/tier2/kpackage") + self.ignoredPackages.append("kde/frameworks/tier3/kemoticons") + self.ignoredPackages.append("kde/frameworks/tier3/kdeclarative") + self.ignoredPackages.append("kde/frameworks/tier3/kdesignerplugin") + self.ignoredPackages.append("kde/frameworks/tier3/knewstuff") + self.ignoredPackages.append("kde/frameworks/tier3/kwallet") # pulled in by kio + self.ignoredPackages.append("kde/frameworks/tier3/plasma-framework") + # TODO: find a way to extend the default script - #self.scriptname = os.path.join(self.packageDir(), "NullsoftInstaller.nsi") - #self.ignoredPackages.append("binary/mysql") + self.scriptname = os.path.join(self.packageDir(), "NullsoftInstaller.nsi") + utils.copyFile(os.path.join(self.packageDir(), "FileAssociation.nsh"), + self.workDir(), False) # needed in workdir + utils.copyFile(os.path.join(CraftStandardDirs.craftBin(), "Packager", "Nsis", "process.nsh"), + self.workDir(), False) # needed in workdir return TypePackager.createPackage(self) diff --git a/extragear/kexi/kexi/whitelist.txt b/extragear/kexi/kexi/whitelist.txt new file mode 100644 --- /dev/null +++ b/extragear/kexi/kexi/whitelist.txt @@ -0,0 +1,83 @@ +# whitelist for kexi + +#gccruntime +bin/libgomp.*\.dll +bin/libgcc_s_.*\.dll +bin/libwinpthread.*\.dll +bin/libstdc.*\.dll +# +#snore +bin/.*snore.*\.dll +plugins/libsnore.*/libsnore_backend.*\.dll +plugins/libsnore.*/libsnore_settings_backend.*\.dll +plugins/libsnore.*/libsnore_secondarybackend.*\.dll +plugins/libsnore.*/libsnore_settings_secondarybackend.*\.dll +bin/SnoreToast\.exe +# +#Growl +bin/.*snoregrowl.*\.dll +# +#ssl +.*/libeay32\.dll +.*/ssleay32\.dll +# +#icu +bin/icuin\d+\.dll +bin/icuuc\d+\.dll +bin/icudt\d+\.dll +# +#qt +bin/Qt5Core\.dll +bin/Qt5Declarative\.dll +bin/Qt5Gui\.dll +bin/Qt5Network\.dll +bin/Qt5Opengl\.dll +bin/Qt5Multimedia\.dll +bin/Qt5MultimediaWidgets\.dll +bin/Qt5Qml\.dll +bin/Qt5Quick\.dll +#bin/Qt5QuickWidgets\.dll +#bin/Qt5Script\.dll +bin/Qt5Svg\.dll +#bin/Qt5WebChannel\.dll +bin/Qt5Widgets\.dll +bin/Qt5Xml\.dll +bin/Qt5XmlPatterns\.dll +#bin/QtXml\.dll +# +plugins/imageformats/(?!.*d\.dll).*\.dll$ +#plugins/sqldrivers/qsqlite(?!.*d\.dll).*\.dll$ +plugins/codecs/(?!.*d\.dll).*\.dll$ +plugins/platforms/qwindows(?!.*d\.dll).*\.dll$ +plugins/iconengines/(?!.*d\.dll).*\.dll$ +# +# +#zlib +bin/libz.dll +bin/zlib.dll +# +#qca +bin/libqca.*\.dll +lib/qca-qt5/crypto/.* +certs/.* +# +#phonon +bin/libphonon.*\.dll +bin/phonon.*\.dll +bin/libphononexperimental.*\.dll +bin/phonon_backend/.* +plugins/phonon_backend/.* +plugins/phonon4qt5_backend/.* + +#bin/Qt5Positioning\.dll +bin/Qt5PrintSupport\.dll +#bin/Qt5Sensors\.dll +bin/Qt5WebChannel\.dll +bin/QtWebEngineProcess\.exe +bin/Qt5WebEngine\.dll +bin/Qt5WebEngineCore\.dll +bin/Qt5WebEngineWidgets\.dll +resources/icudtl\.dat +resources/qtwebengine_resources.pak +resources/qtwebengine_resources_100p.pak +resources/qtwebengine_resources_200p.pak