General eric7

Thu, 23 Nov 2023 16:23:37 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 23 Nov 2023 16:23:37 +0100
branch
eric7
changeset 10334
24300d16a154
parent 10333
4aa8d3b69832
child 10335
cc0a21ae0975

General
- Improved platform support for FreeBSD.

docs/changelog.md file | annotate | diff | comparison | revisions
scripts/install.py file | annotate | diff | comparison | revisions
scripts/uninstall.py file | annotate | diff | comparison | revisions
src/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/ApplicationPage.py file | annotate | diff | comparison | revisions
src/eric7/QtHelpInterface/HelpDocsInstaller.py file | annotate | diff | comparison | revisions
src/eric7/SystemUtilities/DesktopUtilities.py file | annotate | diff | comparison | revisions
src/eric7/SystemUtilities/OSUtilities.py file | annotate | diff | comparison | revisions
src/eric7/SystemUtilities/PythonUtilities.py file | annotate | diff | comparison | revisions
src/eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
src/eric7/Utilities/__init__.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Tools/WebBrowserTools.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
src/eric7/eric7_ide.py file | annotate | diff | comparison | revisions
src/eric7/eric7_post_install.py file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Wed Nov 22 19:42:41 2023 +0100
+++ b/docs/changelog.md	Thu Nov 23 16:23:37 2023 +0100
@@ -2,6 +2,8 @@
 
 ### Version 23.12
 - bug fixes
+- General
+    - Improved platform support for FreeBSD.
 - Debugger
     - Added a configuration option to select whether call trace optimization
       shall be enabled (this requires no function/method definition on the
--- a/scripts/install.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/scripts/install.py	Thu Nov 23 16:23:37 2023 +0100
@@ -75,7 +75,7 @@
     "QScintilla2": [],
 }
 PlatformsBlackLists = {
-    "windows": {
+    "freebsd": {
         "sip": [],
         "PyQt6": [],
         "QScintilla2": [],
@@ -90,6 +90,11 @@
         "PyQt6": [],
         "QScintilla2": [],
     },
+    "windows": {
+        "sip": [],
+        "PyQt6": [],
+        "QScintilla2": [],
+    },
 }
 
 
@@ -431,7 +436,7 @@
     global pyModDir, progLanguages
 
     # Remove the menu entry for Linux systems
-    if sys.platform.startswith("linux"):
+    if sys.platform.startswith(("linux", "freebsd")):
         cleanUpLinuxSpecifics()
     # Remove the Desktop and Start Menu entries for Windows systems
     elif sys.platform.startswith(("win", "cygwin")):
@@ -885,7 +890,7 @@
             print("Use the API files provided by the 'API Files' plug-in.")
 
     # Create menu entry for Linux systems
-    if sys.platform.startswith("linux"):
+    if sys.platform.startswith(("linux", "freebsd")):
         createLinuxSpecifics()
 
     # Create Desktop and Start Menu entries for Windows systems
@@ -1714,6 +1719,8 @@
         PlatformBlackLists = PlatformsBlackLists["windows"]
     elif sys.platform.startswith("linux"):
         PlatformBlackLists = PlatformsBlackLists["linux"]
+    elif sys.platform.startswith("freebsd"):
+        PlatformBlackLists = PlatformsBlackLists["freebsd"]
     else:
         PlatformBlackLists = PlatformsBlackLists["mac"]
 
--- a/scripts/uninstall.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/scripts/uninstall.py	Thu Nov 23 16:23:37 2023 +0100
@@ -109,7 +109,7 @@
     global pyModDir
 
     # Remove the menu entry for Linux systems
-    if sys.platform.startswith("linux"):
+    if sys.platform.startswith(("linux", "freebsd")):
         uninstallLinuxSpecifics()
     # Remove the Desktop and Start Menu entries for Windows systems
     elif sys.platform.startswith(("win", "cygwin")):
--- a/src/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Thu Nov 23 16:23:37 2023 +0100
@@ -52,7 +52,7 @@
         }
 
         self.lfUserCachePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
-        if OSUtilities.isLinuxPlatform():
+        if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
             self.lfUserCachePicker.setDefaultDirectory(
                 os.path.expanduser("~/.cache/largefiles")
             )
--- a/src/eric7/Preferences/ConfigurationPages/ApplicationPage.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/Preferences/ConfigurationPages/ApplicationPage.py	Thu Nov 23 16:23:37 2023 +0100
@@ -54,7 +54,7 @@
             Preferences.getUI("CrashSessionEnabled")
         )
         self.globalMenuCheckBox.setChecked(Preferences.getUI("UseNativeMenuBar"))
-        if not OSUtilities.isLinuxPlatform():
+        if not OSUtilities.isLinuxPlatform() and not OSUtilities.isBsdPlatform():
             self.globalMenuCheckBox.hide()
 
         openOnStartup = Preferences.getUI("OpenOnStartup")
@@ -113,7 +113,7 @@
         Preferences.setUI(
             "CrashSessionEnabled", self.crashSessionEnabledCheckBox.isChecked()
         )
-        if OSUtilities.isLinuxPlatform():
+        if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
             Preferences.setUI("UseNativeMenuBar", self.globalMenuCheckBox.isChecked())
 
         if self.noOpenRadioButton.isChecked():
--- a/src/eric7/QtHelpInterface/HelpDocsInstaller.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/QtHelpInterface/HelpDocsInstaller.py	Thu Nov 23 16:23:37 2023 +0100
@@ -192,7 +192,7 @@
         """
         versionKey = "qt_version_{0}@@{1}".format(version, name)
         info = engine.customValue(versionKey, "")
-        lst = info.split("|")
+        lst = info.split("|") if info else []
 
         dt = None
         if len(lst) and lst[0]:
--- a/src/eric7/SystemUtilities/DesktopUtilities.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/SystemUtilities/DesktopUtilities.py	Thu Nov 23 16:23:37 2023 +0100
@@ -20,7 +20,7 @@
     @return name of the desktop environment
     @rtype str
     """
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         currDesktop = os.environ.get("XDG_CURRENT_DESKTOP", "")
         if currDesktop:
             return currDesktop
@@ -58,7 +58,7 @@
     @return flag indicating a KDE desktop
     @rtype bool
     """
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         desktop = (
             os.environ.get("XDG_CURRENT_DESKTOP", "").lower()
             or os.environ.get("XDG_SESSION_DESKTOP", "").lower()
@@ -80,7 +80,7 @@
     @return flag indicating a Gnome desktop
     @rtype bool
     """
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         desktop = (
             os.environ.get("XDG_CURRENT_DESKTOP", "").lower()
             or os.environ.get("XDG_SESSION_DESKTOP", "").lower()
@@ -102,7 +102,7 @@
     @return name of the desktop environment
     @rtype str
     """
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         sessionType = os.environ.get("XDG_SESSION_TYPE", "").lower()
         if "x11" in sessionType:
             return "X11"
--- a/src/eric7/SystemUtilities/OSUtilities.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/SystemUtilities/OSUtilities.py	Thu Nov 23 16:23:37 2023 +0100
@@ -52,6 +52,16 @@
     return sys.platform.startswith("linux")
 
 
+def isBsdPlatform():
+    """
+    Function to check, if this is a BSD (FreeBSD) platform.
+
+    @return flag indicating BSD platform
+    @rtype bool
+    """
+    return sys.platform.startswith("freebsd")
+
+
 ###############################################################################
 ## functions for user handling
 ###############################################################################
--- a/src/eric7/SystemUtilities/PythonUtilities.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/SystemUtilities/PythonUtilities.py	Thu Nov 23 16:23:37 2023 +0100
@@ -19,7 +19,7 @@
     @return path of the Python executable
     @rtype str
     """
-    if sys.platform.startswith("linux"):
+    if sys.platform.startswith(("linux", "freebsd")):
         return sys.executable
     elif sys.platform == "darwin":
         return sys.executable.replace("pythonw", "python")
--- a/src/eric7/UI/UserInterface.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/UI/UserInterface.py	Thu Nov 23 16:23:37 2023 +0100
@@ -3737,7 +3737,9 @@
         """
         self.__menus = {}
         mb = self.menuBar()
-        if OSUtilities.isLinuxPlatform() and not Preferences.getUI("UseNativeMenuBar"):
+        if (
+            OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform()
+        ) and not Preferences.getUI("UseNativeMenuBar"):
             mb.setNativeMenuBar(False)
 
         ##############################################################
--- a/src/eric7/Utilities/__init__.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/Utilities/__init__.py	Thu Nov 23 16:23:37 2023 +0100
@@ -1136,7 +1136,7 @@
     @rtype str
     """
     info = []
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         releaseList = glob.glob("/etc/*-release")
         if releaseList:
             info.append("Distribution Info:")
--- a/src/eric7/WebBrowser/Tools/WebBrowserTools.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/WebBrowser/Tools/WebBrowserTools.py	Thu Nov 23 16:23:37 2023 +0100
@@ -304,7 +304,9 @@
     @rtype str
     """
     jsFileName = os.path.join(WebBrowserDataDirectory["js"], jqName + ".js")
-    if not os.path.exists(jsFileName) and OSUtilities.isLinuxPlatform():
+    if not os.path.exists(jsFileName) and (
+        OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform()
+    ):
         if jqName == "jquery":
             jsFileName = "/usr/share/javascript/jquery/jquery.min.js"
         elif jqName == "jquery-ui":
--- a/src/eric7/WebBrowser/WebBrowserView.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/WebBrowser/WebBrowserView.py	Thu Nov 23 16:23:37 2023 +0100
@@ -74,7 +74,7 @@
     if OSUtilities.isMacPlatform():
         # OS X/MacOS always have CUPS
         return True
-    elif OSUtilities.isLinuxPlatform():
+    elif OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         testPrinter = QPrinter()
         return testPrinter.supportsMultipleCopies()
     else:
--- a/src/eric7/eric7_ide.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/eric7_ide.py	Thu Nov 23 16:23:37 2023 +0100
@@ -321,7 +321,7 @@
     global app, args, mainWindow, splash, restartArgs, inMainLoop
 
     sys.excepthook = excepthook
-    if OSUtilities.isLinuxPlatform():
+    if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform():
         multiprocessing.set_start_method("spawn")
 
     QGuiApplication.setDesktopFileName("eric7")
--- a/src/eric7/eric7_post_install.py	Wed Nov 22 19:42:41 2023 +0100
+++ b/src/eric7/eric7_post_install.py	Thu Nov 23 16:23:37 2023 +0100
@@ -251,7 +251,7 @@
     """
     if sys.platform.startswith(("win", "cygwin")):
         createWindowsLinks()
-    elif sys.platform.startswith("linux"):
+    elif sys.platform.startswith(("linux", "freebsd")):
         copyLinuxMetaData()
 
     sys.exit(0)

eric ide

mercurial